C中的Integer变量是占用2个字节还是4个字节?它取决于哪些因素?
大多数教科书都说整数变量占用2个字节.但是当我运行程序打印整数数组的连续地址时,它显示了4的差异.
在 GIMP 中,您可以将图像保存为 C 头文件。我使用 XPM 文件执行此操作,如下图所示:

如果我将 XPM 图像保存为 C 头文件,GIMP 将输出此 C 头文件。
为了处理给定图像数据的每个像素,重复调用标题像素。我不明白的是标题像素首先如何处理数据。
#define HEADER_PIXEL(data,pixel) {\
pixel[0] = (((data[0] - 33) << 2) | ((data[1] - 33) >> 4)); \
pixel[1] = ((((data[1] - 33) & 0xF) << 4) | ((data[2] - 33) >> 2)); \
pixel[2] = ((((data[2] - 33) & 0x3) << 6) | ((data[3] - 33))); \
data += 4; \
}
Run Code Online (Sandbox Code Playgroud)
当我看到它在另一个人的代码中使用时,他们表示字节顺序是错误的,并自行重新排列。他们这样使用它:
char *pixel, *data = header_data;
int i = …Run Code Online (Sandbox Code Playgroud)