C言語との互換性とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > C言語との互換性の意味・解説 

C言語との互換性

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/09/16 05:46 UTC 版)

C++」の記事における「C言語との互換性」の解説

C++基本的にC言語の上互換であるが、厳密に異なる。C言語記述され大半プログラムC++コンパイルできるように簡単に修正できるが、C言語では正当でもC++では不正になる部分や、C++とは動作異な部分若干存在する例えば、C言語では汎用ポインタvoid*は他の型へのポインタ暗黙的に変換できるが、C++ではキャスト演算子によって変換明示する必要がある。またC++ではnewclassといった数多く新しいキーワードが追加されたが、移植の際に元のC言語プログラムでそれらが識別子例え変数名)として使われていると、問題になる。 C言語標準規格であるC99その後C11はこうした非互換性の一部解決されており、//形式コメント宣言コード混在といったC++機能C言語サポートされている。その一方でC99では、可変長配列複素数型組み込み変数指示初期化子複合リテラルといった、C++サポートしていない数多く新機能が追加された。C99追加され新機能の一部C++11反映されC++14に対してC99C11との互換性向上される提案が行われた。また、可変長配列複素数型などのC99追加された機能一部C11オプションとなったC++書かれ関数C言語書かれプログラムか呼び出す、あるいはその逆を行なう場合など、C言語コードC++コード混在させるためにはCリンケージ利用する必要があり、関数extern "C"で個別修飾するか、extern "C" { ... }のブロックの中で宣言しなければならないまた、関数引数戻り値などのインターフェイスC言語互換形式合わせる必要がある。Cリンケージ利用した関数については、C++名前修飾がされず、名前修飾依存している関数オーバーロード機能利用できないC/C++相互運用性確保されていることで、慣れ親しんだC言語標準ライブラリ関数大半C++でもそのまま利用し続けることができるということはC++大きなメリットのひとつである。

※この「C言語との互換性」の解説は、「C++」の解説の一部です。
「C言語との互換性」を含む「C++」の記事については、「C++」の概要を参照ください。

ウィキペディア小見出し辞書の「C言語との互換性」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「C言語との互換性」の関連用語

C言語との互換性のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



C言語との互換性のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのC++ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS