|
|
1
98
|
|
2
12
C不太关心整数类型的确切大小,C99引入了头
stdint.h
这可能是你最好的选择。包括这些内容,您可以使用例如
|
|
|
3
11
在我看来,科里的答案是“最佳”的,但是一个简单的“int”在实践中也会起作用(假设你忽略了16位int的系统)。在这一点上,如此多的代码依赖于32位的int,以至于系统供应商不会更改它。 (另请参见为什么long在许多64位系统上是32位的,以及为什么我们有“long long”。) 不过,使用Int32的好处之一是,您不会使这个问题长期存在! |
|
|
4
5
你可以找一份布莱恩·格拉德曼的
|
|
|
5
5
你需要包括
这个链接解释了我的意思: HP link about inttypes.h
这个链接有一个表格显示了你不想使用的原因
|
|
|
6
0
如果stdint.h不适用于您的系统,请创建您自己的系统。我总是有一个名为“types.h”的文件,其中包含所有有符号/无符号8、16和32位值的typedef。 |
|
|
7
0
另外,根据目标平台的不同,您可以为构建系统使用自动工具。 它将查看stdint.h/inttypes.h是否存在,如果不存在,将在“config.h”中创建适当的typedef。 |
|
|
8
0
stdint.h是显而易见的选择,但它不一定可用。
如果您使用的是可移植库,它可能已经提供了可移植的固定宽度整数。
例如,SDL有
|
|
|
9
0
C99或更高版本
使用
如果您的实现支持2的补码32位整数,那么它必须定义
如果不是,那么接下来最好的事情是
也有
美国国家标准委员会
你可以使用
如果您希望使用最小的整数类型来适应32位数字,那么可以使用如下的预处理器语句和在中定义的宏
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |