小编Sar*_*iva的帖子

编译后结构的大小可以改变吗?

假设您具有以下结构:

#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));
}
Run Code Online (Sandbox Code Playgroud)

当我在我的机器(32位操作系统)中编译这段代码时,输​​出如下:

Structure size: 148, BOOL size: 4.
Run Code Online (Sandbox Code Playgroud)

我想知道,一旦编译,这些值是否会根据运行程序的机器而改变.例如:如果我在64位机器上运行该程序,输出是否相同?或者一旦它被编译,它将永远是相同的?

非常感谢,如果这个问题的答案显而易见,请原谅我......

c sizeof

4
推荐指数
1
解决办法
229
查看次数

标签 统计

c ×1

sizeof ×1