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

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

トップページ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
}

実行結果(Visual Studio 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 でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る