我需要在C中声明一个16位大小的整数.
我知道short和int size是依赖于机器的.
我尝试使用,"stdint.h",但似乎他们只是这样做
typedef short int16_t
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
我错过了什么,短型保证16位长度?
如果不是,是否有替代方案可以保证呢?
我知道C语言的规范并没有规定每个整数类型的确切大小(例如int).
我想知道的是:C(不是C++)中是否有一种方法来定义具有特定大小的整数类型,以确保它在不同的体系结构中是相同的?喜欢:
typedef int8 <an integer with 8 bits>
typedef int16 <an integer with 16 bits>
Run Code Online (Sandbox Code Playgroud)
或者任何其他允许程序的其他部分在不同体系结构上编译的方式.
在本文中,摘自"Linux内核开发"一书:http:
//www.makelinux.net/books/lkd2/ch19lev1sec2
它说:
C long类型的大小保证是机器的字大小.然而,在缺点方面,代码不能假设标准C类型具有任何特定大小.此外,无法保证int与long的大小相同
问题是,我认为int与单词大小相同,不长,我找不到任何定义这个说法的官方标准.
有什么想法吗?