GCCに関するこの公式マニュアルを読みました。テキストの翻訳で問題が発生することがあります。6 ページ目 (第 2.1 章) で、私はそのようなテキストの断片を理解できません:
ISO C 標準では、(4 節で) 準拠する実装の 2 つのクラスが定義されています。適合するホストされた実装は、すべてのライブラリ機能を含む標準全体をサポートします。
<float.h>
準拠する独立した実装は、特定のライブラリ機能を提供するためにのみ必要<limits.h>
です。AMD1 以降、 にあるものも; C99 以降、 および にあるものも; そしてC11以降、それらも<stdarg.h>
<stddef.h>
<iso646.h>
<stdbool.h>
<stdint.h>
<stdalign.h>
と 。さらに、C99 で追加された複合型は、独立した実装には必要ありません。標準では、プログラムの 2 つの環境も定義されています。すべての実装に必要であり、プログラムの起動と終了の処理が実装定義である、独立した実装に必要なライブラリ機能を超えるライブラリ機能を持たない独立した環境と、ホストされた環境です。すべてのライブラリ機能が提供され、起動は関数int main (void)
またはint main (int, char *[])
. OS カーネルは独立した環境になります。オペレーティング システムの機能を使用するプログラムは、通常、ホストされた実装になります。
私はそれを正しく理解しているかどうかわかりません...
私がそれをどのように理解したかを言い換えます:
- ISO C 標準の 2 つの実装が存在します: フル (準拠するホストされた実装として名前が付けられます) とライト (準拠する独立した実装として名前が付けられます)。
- ホスト環境 (完全な標準の場合) と独立した環境 (ライト標準の場合) の 2 つの環境 (標準の実装ごとに) が存在します。
軽量版はOS開発用です。フルバージョンは、OS で動作するプログラム用です。
main
そして、関数に関するフレーズがわかりませんでした。
この文章の断片について説明してほしい。