この回は、皆さんに情報に触れてもらうのが主旨ですから、 練習問題などはありません。 内容も、詳しい話は全部忘れてもらってもかまいません。
とはいえ、単にファイルを眺めるだけでなく、すこしは実際にコンパイラを動かして試したりして、 馴染んでおいてください。 内容的には、知っている人なら知っているといった話ですから。
一方で、C 言語を形作るもう一つの部分として標準ライブラリ などの実行時(ランタイム)システムが存在します。 例えば、printf や malloc といった機能を実現している部分です。 文字通り、プログラム実行中に機能する部分です。
ということで、これらの部分がどのようになっているのか、すこし見ていきましょう。 準備に使うのは、お馴染の hello world です。 話の都合で、macro を多用しています。
#include <stdio.h> #define MAIN_RVAL 0 int main() { printf("hello, world\n"); return MAIN_RVAL; }普段は、以下のように使っているわけです。ちなみに、 コンパイラの各ステップがどのように動いているか知りたければ、 -v option をつけるとよいでしょう(例)。
kamada@cygwin% gcc -o hello hello.c kamada@cygwin% ./hello.exe hello, world
2001.9.25/ Tomio KAMADA: kamada@cs.kobe-u.ac.jp