4

C コードを C++ の C コードとしてリンクしたいときは、 を使用する必要があることを知っていますextern "C"。しかし、次のコードで:

/* file.h */
some (void)
{
    return 10;
}
extern "C"
{
    #include "file.h"
}
#include <iostream>

int main (void)
{
    std::cout << some() << std::endl;
}

このコンパイル時エラーが発生します。

C4430: 型指定子がありません - int と見なされます。注: C++ は defualt-int をサポートしていません。

どうすればこれに対処できますか?
で使用MSVC2017MS-Windows10ます。

編集:ほとんどが明示的な戻り値の型で関数を宣言していることは知っていますが、USBPcapと USBPcap を使用してそのような関数を宣言します。自分の C++ プログラムでどのように使用できますか?

4

4 に答える 4

5

すべての関数は、戻り値の型を指定する必要があります。に対して指定していませんsome

C の古いバージョンでは、関数の戻り値の型を省略すると、デフォルトでint. ただし、C++ はそれをサポートしていません。

関数の戻り値の型を常に指定する必要があります。

int some(void)
{
    return 10;
}
于 2019-11-10T15:36:53.033 に答える