C言語では、次の行を使用して、すべてのビットが 1 に設定された定数を定義するのはなぜですか?:
#define EXTENDED_MEM_END ((unsigned) -1)
以下を使用する代わりに?:
#define EXTENDED_MEM_END 0xFFFFFFFF
それともこれだけ?:
#define EXTENDED_MEM_END -1
移植性 (つまり、警告の回避)、非常に特殊なコード、および/またはその他の何かと関係がありますか?
CコードではEXTENDED_MEM_END識別子が に置き換えられる((unsigned) -1)
ため、実際には正しい/期待される値を使用する方法であると思われます。