C言語の機能
Cの関数を使う
C++ 言語は前進となった C 言語と互換性があり、C 言語で書かれたプログラムの大部分は C++ 言語としてもコンパイルできます。これは C++ 言語が C 言語の文法を踏襲し、新しい文法を追加した仕様になっているためです。本書で解説する対象は C++ 言語ですが、基本的な文法の多くは C 言語でも共通しています。
多くの C++ コンパイラは C コンパイラの機能も兼ねています。Visual Studio ではソースファイルの拡張子が cpp であれば C++ 言語のソースファイルと解釈し、c であれば C 言語のソースファイルだと解釈します。Visual Studio の項目には「C++ ファイル(.cpp)」しか存在しませんが、ファイル名の拡張子を .c に変更すれば、自動的に C 言語のソースファイルとしてコンパイルされます。

同一のプロジェクト内で C 言語のソースと C++ 言語のソースを混在させることも可能です。C 言語で書かれた既存のプログラムを C++ 言語のプロジェクトで利用することも難しくはありません。
文法と同じように C++ 言語は C 言語で標準に備えられていた機能に加えて、C++ 固有の新しい機能を追加しています。例えば「最初のプログラム コード2」でテキストを出力するために std::cout と記述しましたが、これは 標準 C++ で追加された新しい機能の 1 つです。当然 C 言語で使うことはできません。C 言語でテキストを画面に表示するには printf() 関数を使っていました。
printf() 関数を利用するには、先に stdio.h ファイルをインクルードしなければなりません。
#include <stdio.h> int main() { printf("Stand by Ready!!\n"); return 0; }

コード1は「最初のプログラム コード2」と同じ結果ですが std::cout ではなく printf() 関数を使ってテキストを出力しています。C 言語の入門書では、最初にテキストを出力するプログラムとしてコード1のように printf() 関数を使っています。
コード1は C 言語としてもコンパイルすることができ、C++ 言語としてもコンパイルできます。コード1の形で問題はないのですが標準 C++ に準拠した形で printf() 関数を使いたい場合は stdio.h ではなく cstdio をインクルードします。
C 言語では stdio.h のように、標準で提供されるヘッダファイルの拡張子は h でした。しかし C++ 言語では標準で提供されるヘッダファイルには iostream や cstdio のように拡張子が付いていません。しかし、C++ 言語にも歴史的な経緯があり、標準 C++ が定められる前の古い環境では拡張子付きの iostream.h が使われていました。古い環境や書籍では iostream.h をインクルードしているコードがありますが、これは古い書き方なので注意してください。現在では iostream をインクルードします。
#include <cstdio> int main() { printf("Stand by Ready!!\n"); return 0; }

コード2はコード1と同じ内容ですが、インクルードしているファイルが標準 C++ に従って cstdio になっています。標準 C++ に準拠したコードとして printf() 関数を使いたい場合は stdio.h ではなく cstdio をインクルードするべきです。
他の C 言語用のヘッダファイルも同様の命名規則で提供されています。ヘッダファイル名の先頭に c を付け加え、拡張子を取り除いたものが C++ 言語用のヘッダファイルです。本書は C++ 言語の解説書なので printf() 関数など C 言語の標準関数については割愛します。