__STDC__ | Programming Place Plus C言語編 標準ライブラリのリファレンス

トップページC言語編標準ライブラリのリファレンス(名前順)

トップページC言語編標準ライブラリのリファレンス(ヘッダ別)


__STDC__

概要

処理系が規格に合致しているかどうか。

ヘッダ

なし(事前定義マクロである)

形式

置換結果

処理系が、標準規格に合致していれば 1 に置換される。

詳細

処理系が規格化以前のものであれば、恐らくこのマクロは定義されていない。C89以降の時代のものであるが、規格に準拠していない場合には、定義されていない可能性も、1以外に置換される可能性もあるが、少なくとも 1 に置換されることはないことを意図している。

処理系によっては、設定を変更することによって、標準への準拠の度合いを変えられることがある。詳しくは、処理系のドキュメントを参照のこと。

注意

使用例

#include <stdio.h>

int main(void)
{
#if __STDC__ == 1
    puts("標準規格に準拠しています。");
#else
    puts("標準規格に準拠していません。");
#endif
}

実行結果(Visual Studio):

標準規格に準拠していません。

実行結果(gcc 6.4.0 (MinGW-w64)):

標準規格に準拠しています。

関連

__STDC_VERSION__ を調べることで、いつの時代の規格に準拠しているか判断できる。
また、様々な対応状況を調べるために、__STDC_HOSTED____STDC_IEC_559____STDC_IEC_559_COMPLEX____STDC_ISO_10646__ がある。

解説章

第29章


参考リンク


更新履歴

’2018/4/3 C++ での事情に関する記述を削除。

’2018/4/2 「VisualC++」という表現を「VisualStudio」に統一。

’2018/1/22 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る