UNIXとその上で実行されるプログラムの95%はCで書かれている。Cには、文字、数、アドレスを扱う機能は備わっているものの、文字列、集合、リスト、配列のような複合データを直接に扱う機能は用意されていない(構造体は例外)。
Cには、ループ、サブルーチンなどのシングルスレッド制御機構がある一方、多重プログラミング、マルチスレッドなどの制御機構はない。Cの記憶割り当て機能は、関数の局所変数からの静的な割り当てとスタックのみで、ヒープやガーベジコレクション機能はない。また、入出力などの高水準機能は、Cの豊富な関数群を利用して処理される。このように、高水準機能を関数として提供することで、言語仕様を小さくまとめている。
Cの小さい言語仕様は習得しやすい。プログラマは、便利な関数群を活用してビジネスロジックを簡単に実装できる。
Hello Worldと表示するプログラムをCで記述すると次のようになる。
#include <stdio.h>
main(){
printf(“Hello World”);
}
Cのプログラムファイル名は、例えばhelloWorld.cのように、拡張子をcにしなければならない。
helloWorld.cをコンパイルするコマンドは次のようになる。
cc helloWorld.c
コンパイル後に生成される実行ファイル名はa.outになる。a.outを実行させるコマンドは次のようになる。
a.out
実行結果として、次のように表示される。
Hello World