Этот код:
#define __STDC_FORMAT_MACROS
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int main(int argc,char **argv)
{
uint64_t val=1234567890;
printf("%"PRId64"\n",val);
exit(0);
}
Работает для C99, С++ 03, С++ 11 в соответствии с GCC 4.5, но не работает на С++ 11 в соответствии с GCC 4.7.1. Добавление пробела до PRId64
позволяет GCC 4.7.1 скомпилировать его.
Какой из них правильный?