我正在使用一64-bit台机器.
$ uname -m
x86_64
$ file /usr/bin/file
/usr/bin/file: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
$
Run Code Online (Sandbox Code Playgroud)
当我运行以下程序时,我得到了sizeof(int)as 4-bytes.
#include <stdio.h>
int main(void)
{
printf("sizeof(int) = %d bytes\n", (int) sizeof(int));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果我运行一个16-,32-和64-位机,那么不就意味着一个大小integer为16-,32-并64-分别位?
在我的机器上,我找到了WORD_BITIS 32.它不应该64在64-bit机器上吗?
$ getconf WORD_BIT
32 …Run Code Online (Sandbox Code Playgroud) sizeof(enum)== sizeof(int),总是吗?
通常的做法是什么?如果我必须通过网络传输这些返回类型,并且必须在另一端完成某些处理,那么您更喜欢枚举/ #define/const ints.
编辑 - 只是检查网络,因为编译器不象征性地链接宏,人们如何调试,比较整数值与头文件?
来自答案 - 我在下面添加这一行,因为我需要澄清 -
"因此它是实现定义的,而sizeof(枚举)可能等于sizeof(char),即1."