C言語とは、プログラミング言語の一つである。単にCとも呼ばれる。
AT&T社のベル研究所でB言語の後継として、UNIXの移植性を高めるために作られた。
Bの次はアルファベットでCなのでCと命名されたとも、B言語の元となったBCPLの2番目の文字を採って命名されたとも言われる。
元々UNIXを記述する目的で内輪向けに作られた言語であるため、安全性はあまり考慮されていない。配列の添字チェックが無かったり、ポインタが無効でもアクセスしようとしたり、整数とポインタを自由にキャストできたり。やりたい放題。
C言語はプログラミング言語の中でも比較的歴史が長く、何度か規格が改定されてきた。
K&Rとは、カーニハンとリッチーの共著『The C Programming Language』(邦題:プログラミング言語C)のこと。転じて、標準化以前のC言語を指す。K&Rは解説書であり規格書ではないため曖昧な記述も多く、これを元に作られたコンパイラ同士の非互換性を生むこととなった。
プログラミング言語を学ぶ人が一番最初に出会う事の多いプログラム、「Hello, World!」はこの本に由来する。
ANSIが1989年に策定した規格。ANSI Cとも呼ばれる。これにより、初めてC言語の標準化が行われた。
ISOが1990年に策定した規格。内容はC89と同一。
ISOが1995年に策定した規格。C90に国際化のためワイド文字列関連のライブラリが追補として追加された。
ISOが1999年に策定した規格。複素数や可変長配列など様々な機能が追加された。
現在、一部を除いて一般的に用いられている規格。
Cを学ぶ上で避けては通れないコード。
#include <stdio.h>
int main(void) {
printf("Hello, World!");
return 0;
}
C言語でのmain関数は
int main(void) { /* ... */ }int main(int argc, char *argv[]) { /* ... */ }として定義するか、処理系依存の定義をすることになっている。
規格として保証されているのは前述の2つのみで、
void main(void) { /* ... */ }int main(int argc, char *argv[], char *envp[]) { /* ... */ }などは処理系によっては使用可能なこともあるが、移植性を考えると望ましくなく、またC言語の教育でこの型を用いるのは不適切である。
よく気付かれるので、C言語の解説動画などでvoid main(void)にすると荒れる原因となる。
急上昇ワード改
最終更新:2025/12/10(水) 23:00
最終更新:2025/12/10(水) 23:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。