C言語 単語


ニコニコ動画でC言語の動画を見に行く

シーゲンゴ

1.3千文字の記事
これはリビジョン 200026 の記事です。
内容が古い・もしくは誤っている可能性があります。
最新版をみる

C言語とは、プログラミング言語の一つである。単にCとも呼ばれる。

概要

AT&T社のベル研究所でB言語の後継として、UNIXの移植性を高めるために作られた。

Bの次はアルファベットでCなのでCと命名されたとも、B言語の元となったBCPLの2番目の文字を採って命名されたとも言われる。

元々UNIXを記述する目的で内輪向けに作られた言語であるため、安全性はあまり考慮されていない。配列の添字チェックが無かったり、ポインタが無効でもアクセスしようとしたり、整数とポインタを自由にキャストできたり。やりたい放題。

C言語に関する規格

C言語はプログラミング言語の中でも比較的歴史が長く、何度か規格が改定されてきた。

K&R

K&Rとは、カーニハンとリッチーの共著『The C Programming Language』(邦題:プログラミング言語C)のこと。転じて、標準化以前のC言語を指す。K&Rは解説書であり規格書ではないため曖昧な記述も多く、これを元に作られたコンパイラ同士の非互換性を生むこととなった。

プログラミング言語を学ぶ人が一番最初に出会う事の多いプログラム、「Hello, World!」はこの本に由来する。

C89

ANSIが1989年に策定した規格。ANSI Cとも呼ばれる。これにより、初めてC言語の標準化が行われた。

C90

ISOが1990年に策定した規格。内容はC89と同一。

C95

ISOが1995年に策定した規格。C90に国際化のためワイド文字列関連のライブラリが追補として追加された。

C99

ISOが1999年に策定した規格。複素数や可変長配列など様々な機能が追加された。

現在、一部を除いて一般的に用いられている規格。 

こんなところで使われているよ

  • ニコニコ大百科の自動リンク機能
  • 2ちゃんねるのread.cgi
  • Unix Kernel (Solaris, FreeBSD, NetBSD, OpenBSD...)
  • Linux Kernel
  • 組み込み開発
  • Rubyインタプリタ
  • その他ありとあらゆる分野

主なコンパイラ

  • cl (Microsoft Visual C++のコンパイラ。C99未対応)
  • gcc (GNU C Compiler)

サンプルコード

Hello, World!

Cを学ぶ上で避けては通れないコード。

#include <stdio.h>

int main(void) {
printf("Hello, World!");

return 0;
}





よくある勘違い

void main

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)にすると荒れる原因となる。

関連動画

関連商品

ニコニコ市場は2023年11月に終了しました。ニコニコ市場は2023年11月に終了しました。ニコニコ市場は2023年11月に終了しました。 

関連項目

  • プログラミング言語
  • C++
関連記事

親記事

子記事

  • なし

兄弟記事

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2025/12/11(木) 02:00

ほめられた記事

最終更新:2025/12/11(木) 01:00

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP