C、C++、Javaコンパイラを実際に衣装して、未初期化変数がどのように扱われるか調べなさい。 その結果をまとめ、未初期か変数を見つけ出す方法を考えなさい。
Cもアセンブラもほとんど経験無いので、どう進めていいかさっぱり分からん。
とりあえず実行結果とアセンブラの結果を見比べるくらい。
これ、回答ないんだろうか。
$ cat ex0201_initialized.c #include <stdio.h> int main(void) { int initialized = 4; printf("%d\n", initialized); } $ cat ex0201_uninitialized.c #include <stdio.h> int main(void) { int uninitialized; printf("%d\n", uninitialized); } $ gcc ex0201_initialized.c $ ./a.out 4 $ gcc ex0201_uninitialized.c $ ./a.out 1614045278
$ gcc -S ex0201_initialized.c $ gcc -S ex0201_uninitialized.c $ diff ex0201_initialized.s ex0201_uninitialized.s 12d11 < movl $4, -8(%rbp)