C 类型long Vs类型long int
下面的typedef是什么意思,为什么需要它C 类型long Vs类型long int,c,C,下面的typedef是什么意思,为什么需要它 typedef unsigned long int ULONG; 它和我的有什么不同 typedef unsigned long ULONG; 对于gcc sizeof int=4、sizeof long=8和sizeof ULONG=8,它们没有任何区别long与long int同义(正如short与short int同义)。它们是相同的。由于默认情况下,long是int的修饰符,因此可以省略int。这同样适用于short和short int、
typedef unsigned long int ULONG;
它和我的有什么不同
typedef unsigned long ULONG;
对于gcc sizeof int=4、sizeof long=8和sizeof ULONG=8,它们没有任何区别
long
与long int
同义(正如short
与short int
同义)。它们是相同的。由于默认情况下,long
是int
的修饰符,因此可以省略int
。这同样适用于short
和short int
、unsigned
和unsigned int
等
这里需要了解的基本内容是,
long
、short
和unsigned
是类型修饰符,而不是类型本身,这与int
、char
、double
等不同。long的大小与gcc无关,而与os相关,<代码>未签名的长< /C> >在C++标准ISO/IEC 14882中没有定义,所以,如果它对你有用,那只是因为你的编译器解释了<代码>未签名的长int < /代码>为<代码>未签名的长< //> > < /p>“GCC siZeof int=4,sisiof long=8”,而不是在32位系统上。就这点而言,Mingw64也没有。类型的大小或多或少由GCC用来调用OS库的ABI决定。“多多少少”因为我很确定你可以在类型与操作系统不匹配的地方构建GCC,你只需要调用你的GCC构建没有编译的代码就会有额外的麻烦。欢迎使用堆栈溢出。ISO/IEC 14882:2011第§7.1.6.2节“简单类型说明符”中的表10将无符号long
定义为有效类型说明符,相当于无符号long int
。(您是对的,第§3.9.1节“基本类型”没有列出无符号long
)