4
假设你有以下结构:编译后结构的大小是否会发生变化?
#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位机器上运行此程序,输出是否相同?或者一旦它被编译,它将永远是相同的?
非常感谢你,原谅我,如果这个问题的答案是显而易见的......
Yeap,这被称为32位仿真模式。要么你有它,否则你的本地代码程序将无法运行。 – sharptooth 2010-04-09 12:43:56
非常感谢,我刚刚开始用C语言编写代码,不知道这是怎么回事。 – 2010-04-09 12:52:20