在 Linux 下,可以使用 C 語言的 sizeof
運算符來判斷數據類型或結構體的內存對齊情況
alignment.c
,并編寫以下代碼:#include<stdio.h>
struct Example {
char a;
int b;
short c;
};
int main() {
printf("Size of char: %zu\n", sizeof(char));
printf("Size of int: %zu\n", sizeof(int));
printf("Size of short: %zu\n", sizeof(short));
printf("Size of struct Example: %zu\n", sizeof(struct Example));
return 0;
}
gcc alignment.c -o alignment
./alignment
輸出結果將顯示各個數據類型及結構體的大小。通過觀察這些大小,你可以推測出內存對齊的情況。例如,如果 sizeof(int)
是 4,那么 int
類型的變量可能按 4 字節對齊。
需要注意的是,sizeof
只能提供數據類型或結構體的總大小,而不能直接告訴你內存對齊的細節。要更深入地了解內存對齊,可以查看編譯器生成的匯編代碼或使用其他專門的工具。