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ビットOS)でコンパイルすると、出力は次のようになります。

Structure size: 148, BOOL size: 4.

コンパイル後、プログラムを実行するマシンによってこれらの値が変わる可能性があるかどうかを知りたいです。例:このプログラムを64ビットマシンで実行した場合、出力は同じになりますか?または、コンパイルすると常に同じになりますか?

どうもありがとうございました、そしてこの質問への答えが明白であるならば私を許してください...

4

2 に答える 2

5

これは固定されており、コンパイルされると変更されません。64 ビット マシンでは、32 ビット アプリケーションとして引き続き実行されます。

于 2010-04-09T12:38:03.650 に答える
2

チャック・ノリスがそう言わない限り、彼らは変わりません。

于 2010-04-09T12:45:30.243 に答える