「C言語/中級者向けの話題」の版間の差分
削除された内容 追加された内容
タグ: 2017年版ソースエディター |
タグ: 2017年版ソースエディター |
||
143 行
int main(int argc, char *argv[])
{
for (int i = 0; i < argc; i++
{▼
printf("argv[%d]の値 : %s\n", i, argv[i]);
}
192 ⟶ 191行目:
<ref>『JISX3010:2003』p.9「5.1.2.2.3 プログラム終了処理」</ref>
=== 関数
inline関数指定子
関数指定子inlineは、その関数の呼び出しを可能な限り速くすることを示唆する。▼
この示唆が効果をもつ程度は、処理系定義とする。
<ref>『JISX3010:2003』p.83「6.7.4 関数指定子」</ref>
219 ⟶ 217行目:
</syntaxhighlight>
==== _Noreturn関数指定子 ====
_Noreturn関数指定子と<stdnoreturn.h>ヘッダファイルは、C11で追加されました<ref>『ISO/IEC 9899:2011』「6.7.4 Function specifiers」</ref>。▼
<syntaxhighlight lang="C">▼
abort(); ▼
}▼
</syntaxhighlight>▼
=== 関数の応用 ===
==== 関数へのポインタ ====
関数へのポインタとは、
303 ⟶ 313行目:
int div(int a, int b)
{
if (b==0){
printf("0で割ることはできません。\n");
return 0;
}
else{
return a/b;
}
320 ⟶ 331行目:
printf("計算方法を入力してください(0=加法、1=減法、2=乗法、3=除法)。:");
scanf("%d", &arithmetic);
if (0<=arithmetic&&arithmetic<=3)
printf("答えは%d。\n", (*func[arithmetic])(i,j));
}
382 ⟶ 393行目:
factorial(3)に戻り、1*1*2*3が返される。
</syntaxhighlight>
▲== _Noreturn関数指定子 ==
▲_Noreturn関数指定子は、関数が呼び出し元に戻らないことを示します。
▲_Noreturn関数指定子と<stdnoreturn.h>ヘッダファイルは、C11で追加されました<ref>『ISO/IEC 9899:2011』「6.7.4 Function specifiers」</ref>。
▲<syntaxhighlight lang="C">
▲_Noreturn void f (void) {
▲ abort();
▲}
▲</syntaxhighlight>
▲_Noreturn関数指定子は、関数mainには適用できません。
== 構造体のビットフィールド ==
|