0xFFFF用简洁的方式替代,该如何解决

0xFFFF用简洁的方式替代
在非16位机上,用什么替代 unsigned int a = 0xFFFF ???
谢谢大牛的 回答……


------解决方案--------------------
#include<limits.h>

unsigned int a=UINT_MAX;
------解决方案--------------------
unsigned int a= ~0
------解决方案--------------------
探讨

unsigned int a= ~0

------解决方案--------------------
探讨
引用:

unsigned int a= ~0

如果用了32位的机器,~0不是成了unsigned int a = 0xffffffff ?

------解决方案--------------------
C99中有个<stdint.h>头文件,其中定义了挺多种类型的整型。
在支持C99编译器上可以使用uint16_t类型。
#include <stdint.h>
uint16_t b = ~0; 
unsigned int a = b; 
这样的话不同宽度类型会有自动隐式扩展,当然在编译器可信的前提下。
------解决方案--------------------
unsigned int = -1;

------解决方案--------------------
探讨
引用:

C99中有个<stdint.h>头文件,其中定义了挺多种类型的整型。
在支持C99编译器上可以使用uint16_t类型。
#include <stdint.h>
uint16_t b = ~0;
unsigned int a = b;
这样的话不同宽度类型会有自动隐式扩展,当然在编译器可信的前提下。
谢谢 不过我的linux里 没……

------解决方案--------------------
探讨
在非16位机上,用什么替代 unsigned int a = 0xFFFF ???
谢谢大牛的 回答……