「C言語/前処理指令」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎必須マクロ: +[https://paiza.io/projects/sbv6TqBKcvPnwKPlE7HpmA?language=c コード例]ほか
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
タグ: 2017年版ソースエディター
390 行
__STDC_NO_COMPLEX__ を定義する実装は、 __STDC_IEC_559_COMPLEX__ を定義してはならない。
 
==事前定義済みマクロ定数一覧==
----
{|class="sortable wikitable"
|+ 事前定義済みマクロ定数一覧
!種別!!マクロ名!!意味
|-
! rowspan=7 style="writing-mode: vertical-rl;" scope="row" | 必須マクロ
|__DATE__||前処理翻訳単位の翻訳の日付("Mmm dd yyyy"の形式をもつ単純文字列リテラル)
|-
409 ⟶ 410行目:
|__TIME__||前処理翻訳単位の翻訳の時刻。("hh:mm:ss"の形式の単純文字列リテラル)
|-
! rowspan=4 style="writing-mode: vertical-rl;" scope="row" | 環境マクロ
|__STDC_IEC_559__||「IEC60559 浮動小数点演算」の規定に合致することを示すための整数定数1。
|__STDC_ISO_10646__||型wchar_tの値が、ISO/IEC 10646(UCS; Universal Coded Character Set)で定義された文字の符号化表現をもつことを示すためのyyyymmLの形式の整数定数。
|-
| __STDC_MB_MIGHT_NEQ_WC__ ||
|__STDC_IEC_559_COMPLEX__||「IEC60559 互換複素数演算」の規定に合致することを示すための整数定数1。
|-
| __STDC_UTF_16__ ||
|__STDC_ISO_10646__||型wchar_tの値が、ISO/IEC 10646(UCS; Universal Coded Character Set)で定義された文字の符号化表現をもつことを示すためのyyyymmLの形式の整数定数。
|-
| __STDC_UTF_32__ ||
|-
! rowspan=8 style="writing-mode: vertical-rl;" scope="row" | 条件付き機能マクロ
| __STDC_ANALYZABLE__ ||
|-
|__STDC_IEC_559__||IEC 60559浮動小数点仕様に準拠している場合に定義される。ISO/IEC 9899:1999(C99)以降で定義される。
|-
|__STDC_IEC_559_COMPLEX__||IEC 60559互換の複素数仕様に準拠している場合に定義される。ISO/IEC 9899:1999(C99)以降で定義される<ref>__STDC_NO_COMPLEX__ を定義する実装は、 __STDC_IEC_559_COMPLEX__ を定義してはならない。</ref>
|-
| __STDC_LIB_EXT1__ ||
|-
|__STDC_NO_ATOMICS__ ||
|-
|__STDC_NO_COMPLEX__ ||
|-
|__STDC_NO_THREADS__ ||
|-
|__STDC_NO_VLA__ ||
|-
|__TIMESTAMP__||ソースの保存日時。ISO/IEC 9899:1999(C99)以降で定義される。"Ddd Mmm dd hh:mm:ss yyyy" 形式
|}
※ __DATE__と__TIME__はそれを使わなければ絶対に解決できない課題を解決するためにのみ使うべきであり、それ以外の場合に安易に使うべきではない。特に、バージョン値の代用としての使用は不適切である。