C99 printf форматтеры против C ++ 11 пользовательских литералов

Этот код:

#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, C ++ 03, C ++ 11 в соответствии с GCC 4.5, но не удается C ++ 11 в соответствии с GCC 4.7.1. Добавление пробела передPRId64 позволяет GCC 4.7.1 скомпилировать его.

Какой из них правильный

Ответы на вопрос(1)

Ваш ответ на вопрос