#include <stdio.h>
#include <inttypes.h>
int main(void)
{
//int64_t a=-(9223372036854775807)-1; //-(2^63-1)-1,这么赋值不报警
int64_t a=-9223372036854775808; //-2^63,这样就报警
printf("%zu\n", sizeof(int64_t));
printf("%016lx\n", a);
}
运行结果如下:
都能输出正确结果,但是第二种赋值会警告,编译器是不是只认识第一种写法?
规定了这么写?感觉真的怪,哈哈......