先頭へ戻る

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

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

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

先頭へ戻る

__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 2017):

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

実行結果(clang 5.0.0):

C11 に準拠しています。

関連

規格に合致しているかどうかは、__STDC__ で確認する。

解説章

第29章


参考リンク


------------------------------------------------------------------------

更新履歴

'2019/2/12 VisualStudio 2015 の対応終了。

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

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

'2018/1/22 新規作成。


------------------------------------------------------------------------

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

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

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

Programming Place Plus のトップページへ



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