在C语言中,为什么要使用下面这行来定义一个所有位都设置为 1 的常量?
#define EXTENDED_MEM_END ((unsigned) -1)
而不是使用以下内容?:
#define EXTENDED_MEM_END 0xFFFFFFFF
或者只是这个?:
#define EXTENDED_MEM_END -1
它是否与可移植性(即避免警告)、非常具体的代码和/或其他东西有关?
我怀疑,由于C代码将EXTENDED_MEM_END标识符替换为((unsigned) -1)
,它实际上是一种使用正确/预期值的方法。