19

たとえば、新しい C11 標準では、 と が追加されていstdalign.hますthreads.h。なぜstdthreads.hですかalign.h?既存のライブラリやシステム ヘッダーとの衝突を避けるためですか?

4

1 に答える 1

13

さまざまな時期に、名前が選ばれる理由はさまざまです。 <stdio.h>C標準が登場するずっと前から名前として使用されていました。標準は単に既存の慣行を標準化したものです。<stddef.h>ヘッダーは元の(C89)委員会の発明でした。その名前は、使用されていなかったために選択されました。同様に<stdlib.h>。名前<inttypes.h>は既存の慣行でしたが、委員会は<stdint.h>独立した実装を提供する必要がありました。この名前<stdarg.h>は、非プロトタイプの同等のものに対応するように選択されました<varargs.h>。名前<stdbool.h>は使用されていませんでした。同様に、私は推測します<stdatomic.h>、、、。プレフィックスは主に標準用に予約されています(ただし、薄い氷の上を踏む可能性があることを知っているので、ヘッダーを使用します)。理由と<stdalign.h><stdnoreturn.h>std"stderr.h"<uchar.h><threads.h>接頭辞が付いていないのでstd、実質的に変更されていないいくつかの先行技術を仮定します。AFAIK、C2011の理論的根拠はまだ完成していません。利用可能になると、より多くの情報が明らかになる可能性があります。

于 2012-12-13T04:41:13.877 に答える