这个printf的写法有些奇怪啊看不懂啊

这个printf的写法有点奇怪啊,看不懂啊。
printf("ID_ALREADY_CONNECTED with guid %" PRINTF_64_BIT_MODIFIER "u\n", p->guid);
这里面的参数很奇怪啊,是什么意思啊,在windows下可以编译通过,linux下不行啊
------解决方案--------------------
这里的关键显然是PRINTF_64_BIT_MODIFIER,可能在不同的系统或编译器有不同的定义。
比如,如果
#define PRINTF_64_BIT_MODIFIER "ll"
那么这一行就变成了
printf("ID_ALREADY_CONNECTED with guid %llu\n", p->guid);
p->guid应该是个64位整数,这个printf就是要把它按照64位的格式打出来