奇葩的输出
#incldue<stdio.h>int main()
{
long long int a = 1,b =2,c= 3;
printf("%d %d %d\n",a,b,c);
return 0;
}
运行结果?
理由?
望大神指教,尽量画下图呗(x86 小端存储) 虽然不会,帮忙顶回复 1# 18345093167
long long int是64位的,应该用printf("%"PRId64,...)输出,PRId64之类的在inttypes.h中定义。 试一下 %ld hellioncu 发表于 2016-08-16 13:38 static/image/common/back.gif
long long int是64位的,应该用printf("%"PRId64,...)输出,PRId64之类的在inttypes.h中定义。
有谁规定 long long int 必须是 64 位么?
既然知道了类型是 long long int,直接用 lld 就可以了。
PRIdN 之类的宏,是专门给它们对应的 typedef 类型用的,因为同一个 typedef 类型,例如 int64_t,在不同实现中对应的实际类型可能是不一样的,所以才有了 inttypes.h 中的那些宏。但是在已知实际类型的情况下,就没有必要再去用它们了。 回复 1# 18345093167
程序都是错的(包含未定义行为),谈什么运行结果? MMMIX 发表于 2016-08-16 15:36 static/image/common/back.gif
有谁规定 long long int 必须是 64 位么?
既然知道了类型是 long long int,直接用 lld 就可以了。 ...
好像有些不支持lld,所以才需要PRId64此类的宏 回复 2# 王楠w_n
不会就学啊 妹纸学前端 css javascript 很快的 有个编辑器和浏览器就行 程序的输出是10 2,程序本身没有错 #include写错了