ISO C 标准规定:
sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long)
我在 BIT Linux mint (19.1) 上使用 GCC-8,大小为long int
is 8
.
我正在使用一个使用 GCC 7 的应用程序,编译器是 64 位。
的大小long int
is 4
。
编译器或操作系统是否定义了 a 的大小long int
?
编译器说了算。操作系统只运行生成的二进制文件。
话虽如此,编译器通常会生成操作系统可以使用的可执行文件,因此这里存在一些相互作用。因为像大小之类的东西int
真的不重要只要它们一致,你会看到变化。
换句话说,如果内核期望long int
由于编译方式的原因,它的大小为 8 个字节,那么您将需要以这种方式进行编译以匹配,否则您编译的代码将不匹配,并且所有共享库都将无法工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)