一からC言語をマスター第0話!プログラミング言語C はじめに!

プログラム言語

C言語を使っていますか?
長年、システムエンジニアをしてきても、C言語での開発には携わるケースはあまりありませんでした。
中途半端に身に付けたC言語は、すっかり真っ白な状態になっています。

学生の頃、はじめてC言語でプログラミングをしたときのことを思い出し、また妙にC言語でプログラミングをやりたくなりました。

本棚に残っていた古いいテキストを取り出し、再挑戦をしようと決めました。
そのテキストとは、あの古書である協立出版社の「プログラミングC 第2版」(B.W.カーニンハン、D.M.リッチー薯)「The C Programming Language」です。

やっぱり、C言語はおもしろい!
複数に分けて、C言語学習の奮戦記を記録しながら、C言語でプログラミングをする愉快さと可能性を紹介していきます。

C言語の歴史

C言語は、1972年にベル研究所のデニス・リッチー(Dennis Ritchie)氏らによって開発されました。
当初は、UNIXオペレーティングシステムの移植性を向上させるためのツールとして設計されました。

C言語の設計は、1960年代のALGOL、BCPL、B言語などの影響を受けています。
特に、B言語を基盤にして作られたことから、「C」と名付けられました。

C言語は、システムプログラミングやオペレーティングシステムの開発に適した高いパフォーマンスと柔軟性を持っています。

その後、1980年代にANSI(米国国家規格協会)によって標準化され、「ANSI C」として知られるようになりました。
現在では、C言語はさまざまなプログラミング言語の祖先と見なされており、C++、C#、Java、Objective-Cなど、多くの現代の言語に影響を与えています。

C言語のシンプルさと効率性は、今もなお多くのプログラマーに愛され続けています。

ANSI標準規格とは

ANSI(米国国家規格協会、American National Standards Institute)は、アメリカ国内で標準規格の策定と承認を行う非営利団体です。

1918年に設立され、産業界、政府、学術機関などの幅広いステークホルダーと協力して、技術標準、製品規格、手順などの標準化を推進しています。

ANSIの標準規格は、製品やサービスの品質、安全性、互換性を確保するための基準を提供します。
これにより、異なるメーカーや業界間での一貫性と信頼性が向上し、市場における公正な競争と消費者保護が促進されます。

ANSI規格は国際的にも広く認知されており、多くの場合、ISO(国際標準化機構)やIEC(国際電気標準会議)などの国際規格とも整合性を保っています。

特に注目されるのは、プログラミング言語Cの標準化です。

1983年、ANSIはC言語の標準化プロジェクトを開始し、1989年にANSI C(ANSI X3.159-1989)として正式に標準化されました。
この標準化により、C言語の仕様が明確化され、異なるプラットフォーム間での互換性が向上しました。

ANSIの活動は、技術革新と経済発展を支える重要な役割を果たしており、今後も標準規格の策定を通じて、様々な分野での進歩と発展に貢献し続けるでしょう。

C言語の特徴

C言語は、関数の集合で構成されています。
関数とは、ある目的の作業を行い、結果を返してくれるものであります。

その関数を使用するために、プログラムの最初に関数が登録されているヘッダーファイルというものを宣言します。

例えば、C言語には、COBOL言語のように入出力命令(READ、WRITE)などなく、宣言したヘッダーファイルのライブラリ関数を使用して、入出力処理を行います。

また、もともとC言語はUNIXのOSやコンパイラを記述するのに使われ、「システム・プログラム言語」と呼ばれています。

今では、小型から大型コンピュータなど幅広くC言語は使用されています。
移植性にすぐれた汎用的なプログラム言語であるといえます。

C言語の構文

main関数に戻り値やvoidを指定するのはいつからですか?

C言語の構文でmain()関数に戻り値(例えばint)やvoidを指定するのは、ANSI C標準(別名C89またはC90)からです。

ANSI C標準は1989年にアメリカ国家規格協会(ANSI)によって制定され、その後、国際標準化機構(ISO)によってISO/IEC 9899:1990として採用されました。

この標準によると、main()関数の戻り値の型はintであるべきとされています。
つまり、main()関数はオペレーティングシステムに整数値を返す必要があります。

標準に従った例は以下の通りです。

int main(void) {
    // コード
    return 0;
}

または

int main(int argc, char *argv[]) {
    // コード
    return 0;
}

voidを戻り値の型として指定する例:

void main(void) {
    // コード
}

これはANSI C標準に準拠していませんが、一部のコンパイラでは受け入れられることがあります。
しかし、移植性や標準への準拠を考慮すると、main()関数の戻り値の型としてintを使用することが推奨されます。

本記事で使用するテキストは、このバージョン以前のものですが、こちらの規約を使用します。

C言語の基本の構文

まず、関数であるprintfを使用するので、ヘッダー・ファイル「stdio.h」(標準入出力ライブラリ)の情報を取り込みます。
ここでは、printf関数を使用しています。

main関数は、必ず先頭に記述する関数です。

main関数の「int」は、戻り値の属性(整数型)です。
voidは、引数が無いことを示します。

以下は、「Hello, World」と表示する簡単なプログラム例です。

基本構文

実行してみます。

実行結果

使用するコンパイラやエディタについて

C言語を学習するには、コンパイル環境の準備しなければなりません。
Linuxの種類である、Cygwinを使用します。

Cygwinとは、Windows 上でLinux ディストリビューションと同様の機能を提供する GNU およびオープン ソース ツールの大規模なコレクション であります。
実質的な POSIX API 機能を提供する DLL (cygwin1.dll)です。

エディタは、サクラエディタVisual Studio Codeを使います。

まとめ

C言語は、C++やC#の元祖となりますので、とても重要です。
C言語をしっかり身に付けることは、WEB系やゲームアプリやAIの開発にも柔軟に対応できるようになります。

それでも近道は禁物です。
じっくり学び、複雑化する社会に対してコンピュータ言語で対応していきたいですね。

未来のコンピュータメカニズムに対応してくためにも、C言語を学習することは大切とされるはずです。
進化するC言語の元祖を見直し、リベンジすることにしました。

コメント

タイトルとURLをコピーしました