该stdint.h
在我的公司头写着:
#define INT64_MIN -9223372036854775808LL
但在我的项目的一些代码,程序员写道:
#undef INT64_MIN
#define INT64_MIN (-9223372036854775807LL -1)
然后,他将使用代码这个定义。
该项目没有警告/错误编译。
当我试图消除他的定义,并使用默认的,我得到:
error: integer constant is so large that it is unsigned
这两种定义似乎是等价的。
为什么一个编译罚款和其他失败?