【发布时间】:2018-05-10 01:37:14
【问题描述】:
将 1113355579999 作为参数传递时,函数内部的值会更改为 959050335。
调用(main.c):
printf("%d\n", FindCommonDigit(1113355579999, 123457));
功能(ex4.c):
int FindCommonDigit(long int n1, long int n2) { printf("%d\n", n1); }
有什么问题?
值得一提的是,在到达printf 之前,值会发生变化。
【问题讨论】:
-
printf("%d\n", (int)sizeof(long int));在您的平台上的结果是什么? -
您是否启用了警告?
-
另外值得注意的是,如果
n1是long int,printf("%d\n", n1);是错误的。 -
使用
long long int和%lld作为格式说明符。 -
警告已启用,没有警报。
标签: c int printf long-integer