1. ホーム
  2. c++

[解決済み】C++やCでfoo(void)とfoo()は違うのですか?

2022-04-02 02:20:35

質問

次の2つの関数定義について考えてみよう。

void foo() { }

void foo(void) { }

この2つは何か違いがあるのでしょうか?もしそうでないなら、なぜ void の議論があるのでしょうか?美的な理由?

解決方法は?

C :

  • void foo() は関数を意味します。 foo 不特定の型の不特定の数の引数を取ること。
  • void foo(void) は、関数 foo 引数を取らない。

C++ :

  • void foo() は関数を意味します。 foo 引数を取らない。
  • void foo(void) は関数を意味します。 foo 引数を取らない。

書くことによって foo(void) したがって、両方の言語で同じ解釈をすることができ、ヘッダを多言語化することができます (ただし、ヘッダを本当に多言語化するには、通常さらにいくつかのことを行う必要があります。 extern "C" C++をコンパイルしている場合)。