K&R C
K&R
自体はプログラミング言語Cという、Brian KernighanとDennis Ritchieによって書かれたC言語についての書籍の初版を指す様。(つまり、C言語の一番最初のときのこと)
その書籍で提唱されたC言語がK&R C
。
K&R C
での関数の例は以下。
area(width, height)
int width;
int height;
{
return width * height;
}
また、K&Rスタイル
は字下げスタイルのことで、他にもいくつかある様。(上記のコード)
→ 字下げスタイル - Wikipedia
K&R
ではC言語の公式な標準が定められておらず、その後、ANSIでの標準化がされたものがANSI C
。
ANSI C
ANSI、ISOが発行したC言語の標準のこと。
C言語には以下のようにバージョンがあり、
- C89
- C90
- C95
- C99
- C11
- C17
単にANSI C
という場合はC89
, C90
を指す。
K&R
で書いた関数の例をANSI Cで書くと以下のようになる。
int area(int width, int height)
{
return width * height;
}
K&R C
とANSI C
の違いについては、
付録 G K&R Sun C と Sun ANSI C の違い (C ユーザーズガイド)
を参照。(K&R Sun C
とSun ANSI C
なので、SunのCコンパイラでの場合の違い)
gcc
では-ansi
, -pedantic
オプションをつけることで、ANSIと互換性のないGCCの機能は無効になる。ただし、仕様に従っていないコードに対してすべて警告が出るわけではない様。
(Warning Options (Using the GNU Compiler Collection (GCC))の-Wpedantic -pedantic
を参照)
$ gcc -Og -Wall -ansi -pedantic -o main main.c
Ref
- プログラミング言語C - Wikipedia
- ANSI C - Wikipedia
- O'Reilly Japan - C実践プログラミング 第3版
- 付録 G K&R Sun C と Sun ANSI C の違い (C ユーザーズガイド)
- 字下げスタイル - Wikipedia
- C Dialect Options (Using the GNU Compiler Collection (GCC))
- Warning Options (Using the GNU Compiler Collection (GCC))
- 日記/2010/01/06/プロトタイプ宣言の引数型の格上げとかK&Rとか、 gccの"-traditional", "-ansi", "-pedantic"オプションとか。 - Glamenv-Septzen.net
- C言語関係
- C言語 - Wikipedia
- C (programming language) - Wikipedia