OSを作るために開発され、多くのプログラミング言語に影響を与えているC言語の基礎について説明していきます。
このレッスンでは gcc 4.1.2 を使用しています。
gcc hello.c
gcc -o hello hello.c
man gcc
void f(void) { static int a; a = 0; a++; printf("a:%d\n", a); }
/* int型が占有するメモリ空間の数が表示されます */ printf("%d\n", sizeof(int));
このレッスンに関する参考リンクを紹介しておきます。
まずはこちらから。C言語についてかなり詳細にまとめられています。
こちらでC言語を覚えた方も多いのでは。有名なサイトですね。
メモリを理解するにはまずは壊すところから、という視点が参考になりました。
メモリまわりの概念がわかりやすく図解されています。
ヒープメモリ他についてわかりやすく図解されています。
ヒープ、スタックまわりについてまとめられています。
Code/Data/Heap/Stackについてまとめられています。
セグメンテーション違反の例としてわかりやすかったです。
ポインタと配列と文字列の関係について詳細にまとめられています。
関数の説明がきれいにまとめられています。
長年の「int * a」「int* a」「int *a」問題が解決しました。
補足情報 レッスン作成にあたって参考にしたサイト
http://www.ideaxidea.com/archives/2012/10/how_it_was_made_c_lang.html