假设您有以下结构:
#include <windows.h> // BOOL is here.
#include <stdio.h>
typedef struct {
BOOL someBool;
char someCharArray[100];
int someIntValue;
BOOL moreBools, anotherOne, yetAgain;
char someOthercharArray[23];
int otherInt;
} Test;
int main(void) {
printf("Structure size: %d, BOOL size: %d.\n", sizeof(Test), sizeof(BOOL));
}
当我在我的机器(32 位操作系统)中编译这段代码时,输出如下:
Structure size: 148, BOOL size: 4.
我想知道,一旦编译,这些值是否会根据运行程序的机器而改变。例如:如果我在 64 位机器上运行这个程序,输出是否相同?或者一旦它被编译它就永远是一样的?
非常感谢,如果这个问题的答案很明显,请原谅我......
最佳答案
它是固定的,一旦编译就不会改变。在 64 位机器上,它仍将作为 32 位应用程序运行。
关于编译后结构的大小可以改变吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2607391/