プログラミング関連の話をしますこの広告は、90日以上更新していないブログに表示しています。挙動が違うという話ですね。自分も話だけ聞いたことがあったものの2つがどう違うのかはわかっていなかったため、C言語の規格を読みながら何が違うのかを調べてみました。結果だけ述べると、この2つの書き方は同じように見えて実は明確な違いがあり、引数がない関数を定義/宣言する場合には後者を使うのが適切です。言え、2つの書き方で違いがあるとかほんとかよ?と思う方もいると思うので、まずはこの二つがどう違うのか見ていきましょう。2つの関数の書き方の違い早速ですが、以下のプログラムを見てみましょう。関数から3つの引数を渡して呼び出しを行なっています。多くの方はこのプログラムを見てコンパイルの結果はエラーになると予想するでしょう。ところが、実際にコンパイルしてみると驚くべき結果が得られます。func_empty.cなんと、エラーにならずコンパイルできてしまいました。拡張機能がこの結果を引き起こしている訳ではなさそうです。書くことで明示的に引数を受け付けないことを示すこともできます。