2023年12月5日火曜日

return 0 vs return (0) in C

C 言語のプログラムで return で戻り値を返すときにかっこをつける人とつけない人がいる.ググルとつけない人が多いようだが,他の制御文 for(),while() などは括弧をつけている.なぜ return はつけないんだろう,って調べてみた.

まず,オリジナルの C 言語の return 文は括弧をつけよとのことであった.また仕様書を読む限り,制御文と括弧の間にはスペースを,関数と括弧の間にはスペースを入れないよう書き分けているようだ.

return (0); ○
return(0); △?
return 0; △?
return0; ×
for(;;); △?
for (;;); ○
myfunc (); △?
myfunc(); ○

ただし,ANSI C や今のコンパイラは括弧をつけなくても認識してくれる,との話である.

Source: Stack Overflow