#include <stdio.h>
#include <inttypes.h>
int main (void) {
int16_t me16;
me16 = 4593;
printf ("me16 = %" PRId16 "\n", me16);
return 0;
}
" PRId16 "为什么也要用双引号呢?
7 个解决方案
#1
PRId16 的宏定义是什么?
宏就是简单替代。楼主把PRId16的宏定义简单拷贝过去,看看是什么。
宏就是简单替代。楼主把PRId16的宏定义简单拷贝过去,看看是什么。
#2
因为
# define PRId16 "d"
PRId16 的定义两边也有个引号
# define PRId16 "d"
PRId16 的定义两边也有个引号
#3
这样就只是d了
#4
对这个宏还真不熟悉。学习
#5
PRId16无定义无真相。
#6
<inttypes.h>定义PRId16为"hd".我是奇怪为什么在双引号中还有另一个双引号,直接写成"me16=%PRId16\n"不可以吗?
#7
你看错了 那两个引号不是加给 PRId16 宏的
应该这样看
printf ("me16 = %"
PRId16
"\n", me16);
平时我们写代码时,如果字符串过长,一般都会分行写成这样
"上面一半"
"下面一半"
这样编译器编译时会自动合成
"上面一半下面一半"
所以PRId16应该是类似下面的定义
#defind PRId16 "d"
应该这样看
printf ("me16 = %"
PRId16
"\n", me16);
平时我们写代码时,如果字符串过长,一般都会分行写成这样
"上面一半"
"下面一半"
这样编译器编译时会自动合成
"上面一半下面一半"
所以PRId16应该是类似下面的定义
#defind PRId16 "d"
#1
PRId16 的宏定义是什么?
宏就是简单替代。楼主把PRId16的宏定义简单拷贝过去,看看是什么。
宏就是简单替代。楼主把PRId16的宏定义简单拷贝过去,看看是什么。
#2
因为
# define PRId16 "d"
PRId16 的定义两边也有个引号
# define PRId16 "d"
PRId16 的定义两边也有个引号
#3
这样就只是d了
#4
对这个宏还真不熟悉。学习
#5
PRId16无定义无真相。
#6
<inttypes.h>定义PRId16为"hd".我是奇怪为什么在双引号中还有另一个双引号,直接写成"me16=%PRId16\n"不可以吗?
#7
你看错了 那两个引号不是加给 PRId16 宏的
应该这样看
printf ("me16 = %"
PRId16
"\n", me16);
平时我们写代码时,如果字符串过长,一般都会分行写成这样
"上面一半"
"下面一半"
这样编译器编译时会自动合成
"上面一半下面一半"
所以PRId16应该是类似下面的定义
#defind PRId16 "d"
应该这样看
printf ("me16 = %"
PRId16
"\n", me16);
平时我们写代码时,如果字符串过长,一般都会分行写成这样
"上面一半"
"下面一半"
这样编译器编译时会自动合成
"上面一半下面一半"
所以PRId16应该是类似下面的定义
#defind PRId16 "d"