整数有多大?

Jac*_*cob 4 c

计算int的字节数的正确方法是什么?以及如何将int写入文件描述符?

这是一个模拟代码示例,可能会清楚我想要实现的目标:

char *message = "test message";
int length = strlen(message);
int fd = open(file, O_CREAT|O_RDWR);
write(fd, length??, ??); // <--- what goes here
write(fd, message, length);
Run Code Online (Sandbox Code Playgroud)

我不关心平台独立性和字节顺序,只是它可以在尽可能多的平台上编译.

wkl*_*wkl 9

sizeof(length) 进入该领域.

sizeof(int)如果您length将来更改类型,它优于使用.

sizeof表示数据类型的大小,以数倍为单位sizeof(char),始终为1.

  • `sizeof`应用于`unsigned char`时,`char`始终为1.它在C标准中定义.那个1字节可能是8位,也可能是9位,它可能更多地取决于平台.http://c-faq.com/charstring/wchar.html阐述了这一点.我没有C89/C90标准的副本,但在C99中,这是第6.5.3.4节. (3认同)