「C言語/記法」の版間の差分

削除された内容 追加された内容
Ef3 (トーク | 投稿記録)
→‎キーワード: Use {{:C言語/Keywords}}
タグ: 2017年版ソースエディター
Ef3 (トーク | 投稿記録)
→‎__func__: C11を参照
タグ: 2017年版ソースエディター
83 行
 
==== __func__ ====
識別子 __func__ は、コンパイラ翻訳者(''translator'')によって以下のように暗黙に宣言され、関数名の文字列としてデバッグどで使用できる。<ref>『JISX3010:2003』p.38「6.4.2.2 あらかじめ定義さた識別子」</ref>ばならない。
各関数定義の開始波括弧の直後に、次のような宣言があるように振る舞います<ref name="jtc1-sc22-wg14-n1256-7.26.1">{{cite book
 
| url = http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf
<source lang=c>
| title= N1570 Committee Draft — April 12, 2011 9899:201x(C11)
| page=p.376, §7.26.1 ''Introduction'' | publisher=ISO/IEC}}</ref>。
:<syntaxhighlight lang=c>
static const char __func__[] = "function-name";
</syntaxhighlight>
ここで、function-nameは字句解析的包含( ''lexically-enclosing'' )された関数の名前です。
;[https://paiza.io/projects/Ud_ZSq20xeBfMb-9x1WeXg?language=c 適用例]
:<syntaxhighlight lang=c>
//例 __func__の使い方
#include <stdio.h>
93 ⟶ 101行目:
printf("%s\n", __func__);//「main(改行)」と表示する。
}
</syntaxhighlight>
</source>
 
=== 国際文字名 ===