C言語編 標準ライブラリのリファレンス __STDC_VERSION__

先頭へ戻る

__STDC_VERSION__

概要 コンパイラの対応している規格のバージョンを表す。
ヘッダ なし(事前定義マクロである)
形式
置換結果 以下の long int型の定数値。
C95規格に準拠していれば 199409L、C99規格に準拠していれば 199901L、C11規格に準拠していれば 201112L。
詳細 C95 よりも以前の環境、あるいは規格に準拠していない環境では、恐らく定義されていない。
コンパイラによっては、設定を変更することによって、標準への準拠の度合いを変えられることがある。詳しくは、コンパイラのマニュアルを参照のこと。
注意
使用例
#include <stdio.h>

int main(void)
{
#ifdef __STDC_VERSION__
    #if __STDC_VERSION__ == 201112L
        puts( "C11 に準拠しています。" );
    #elif __STDC_VERSION__ == 199901L
        puts( "C99 に準拠しています。" );
    #elif __STDC_VERSION__ == 199409L
        puts( "C95 に準拠しています。" );
    #else
        puts( "不明な結果です。" );
    #endif
#else
    puts( "__STDC_VERSION__ が定義されていません。" );
#endif

    return 0;
}

実行結果(VisualStudio 2015/2017):

__STDC_VERSION__ が定義されていません。

実行結果(clang 5.0.0):

C11 に準拠しています。
関連 規格に合致しているかどうかは、__STDC__ で確認する。
解説章 第29章


参考リンク



更新履歴

'2018/4/5 VisualStudio 2013 の対応終了。

'2018/4/3 C11規格に対応。
使用例のプログラムの内容を変更。clang の実行結果を追加。

'2018/1/22 新規作成。



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

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

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

Programming Place Plus のトップページへ


はてなブックマーク Pocket に保存 Twitter でツイート Twitter をフォロー
Facebook でシェア Google+ で共有 LINE で送る rss1.0 取得ボタン RSS
管理者情報 プライバシーポリシー