なぜ標準ライブラリFILE
タイプが書かれている大文字の?
不透明な性質のためですか?
ありがとうございます。
なぜ標準ライブラリFILE
タイプが書かれている大文字の?
不透明な性質のためですか?
ありがとうございます。
、アッパーケースは、一般的にプリプロセッサマクロのために使用されるため、大文字があると思います。私の推測では、もともとは、ライブラリの実装で使用されている具体的な型に拡張されたマクロとして実装されていたということです。
これは不透明な型ではなく、通常はC構造体ですが、そのフィールドは実装定義です。
は、私はあなたがCで使用される命名規則を見れば歴史...
私はそれでも、仕様が基本的な型のプロパティやそのようなオブジェクトの内容に関する約束をしない限り、それを "不透明"と呼びます。 –
わかりませんが、標準Cライブラリで宣言されているタイプはごくわずかです。おそらくFILE
が最初に定義され、* _tスタイルはまだ開発されていませんでした。
それとも原始的なCのバージョンでは、それはマクロだった...彼らはtypedef
を発明する前に何が起こったのかと思う:
#define FILE struct __file
の代わりに:
typedef struct __file FILE;
'#define'を後方に持っています... –
おっと!修正済み – rodrigo
です良いのですか?大まかな時代(例えば 'time_t')のUNIXシステムの型は、組み込みのC型のように小文字である –
キャップのロックキーが壊れていて、期限が短すぎた –
もともとwouldn単純なファイルdエスクリプタは代わりに使用されていますか? (普通の整数であり、組み込みのものは小文字で 'stdin'、' stdout'、 'stderr'です。)' FILE'は、ディスクリプタの使用とファイルハンドルの使用を区別していたかもしれません。 –