ホームページ > バックエンド開発 > C++ > C は本当に C のサブセットですか? : 主な違いと例外を調査する

C は本当に C のサブセットですか? : 主な違いと例外を調査する

Linda Hamilton
リリース: 2024-12-31 14:05:10
オリジナル
834 人が閲覧しました

Is C Truly a Subset of C  :  Exploring Key Differences and Exceptions?

C が C のサブセットであることの例外

一般的に C は C のサブセットであると言われていますが、この主張は完全に正確ではありません。 C と C の特定のバージョンを比較すると、違いが現れます。

C89 と C の違い

  • 暫定的な定義はありません: C には違いがあります。定義のない同じ名前の変数を再宣言することはできません。 between.
  • 異なる配列型の互換性: C は、特定のサイズの配列 (例: int a[1]) とサイズが指定されていない配列 (例: int (*ap)[) を区別します。 ]))、一方、C では互換性が可能です。
  • K&R 関数宣言なしスタイル: C では関数定義に別の構文が必要で、古い K&R スタイル (例: int b(a) int a; { }) は許可されません。
  • ネストされた構造体のスコープの違い: C では、ネストされた構造体はクラスレベルの宣言として扱われるため、それを囲んでいる外部からはアクセスできなくなります。 struct.
  • いいえ デフォルト int Type: C では、 int がデフォルトで想定される C とは異なり、 auto 変数には明示的な型指定子が必要です。

C99 と C の違い

C99 には追加の逸脱が導入されています厳密な C 互換性から:

  • 配列次元の制限: C99 では、関数パラメーターの配列次元を指定する際に特定の特殊文字が許可されません。
  • 可変長の欠如配列: サイズとして非定数式を使用して宣言された可変長配列は、 C でサポートされています。
  • 柔軟な配列メンバーはありません: 実行時にサイズを指定できる C99 の柔軟な配列メンバーは、C .
  • 制限修飾子の欠如: 最適化の目的で使用される C の制限修飾子は、 C99.

以上がC は本当に C のサブセットですか? : 主な違いと例外を調査するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート