「C++98プログラマーのためのC89入門」の記事一覧
- 更新日:
- 公開日:
フリースタンディング環境というのは、C++でいう自立処理系の環境のことです。C++の場合と同様、オペレーティングシステムの支援無しに動作する環境であり、一部のヘッダを除き、標準ライブラリは一切サポートされません。また、プ […]
C言語(C89)ではC++(C++98)の標準ライブラリのうち、当然のことながら標準Cライブラリに当たる部分しかサポートされません。しかし、標準Cライブラリの範疇でも若干のちがいがあります。 std名前空間 C++の標準 […]
ここでは、他の回で採り上げなかったC++(C++98)とC言語(C89)の細かなちがいについて解説します。 可変個の実引数を取る関数の仮引数並び C++では、printf 関数のような可変個の実引数を受け取る関数の仮引数 […]
メモリの動的割付け、あるいはオブジェクトの動的生成の方法は、C++とC言語では大きく異なります。 newおよびdelete演算子はない C++でオブジェクトの動的生成と解体に使っていたnew演算子とdelete演算子は、 […]
文字定数と文字列リテラルについても、C++とC言語では微妙なちがいがあります。また、C++では「文字リテラル」といいますが、C言語では「文字定数」という用語が使われています。 文字定数 C++の文字リテラルはchar型で […]
C言語にクラスはありませんが、構造体と共用体ならあります。また、C++と同様、列挙体も使うことができます。 タグ名だけで型名にならない C++ではクラスや列挙体のタグ名だけで型名になりましたが、C言語では明示的にstru […]
C言語(C89)にもC++(C98)と同じ修飾子(constおよびvolatile)や記憶クラス指定子(extern, static, auto, register, および typedef)が備わっています。ただし、m […]
C言語におけるプログラムの開始と終了の仕様は、C++とくらべるとずっと単純です。これは主として、C言語にはコンストラクタやデストラクタを持つオブジェクトが存在しないからです。 プログラムの開始 プログラムの開始時には、C […]
C言語(C89)では、C++(C++98)にはあるいくつかの型がサポートされません。また、型変換についてはかなり仕様が異なりますので、今回はそのあたりの解説を行います。 C言語にはない型 構造体と共用体以外のクラスがない […]
注釈(コメント)について書くべき内容はごくわずかですが、他に分類するのが難しかったのと、重要なのとで、あえて1回を割くことにしました。 C++では、//から行末までの形式と、/*から*/までの形式の二種類の注釈を使うこと […]