2

这是一个调用 linux c 函数的 cpp 应用程序。我使用 g++ 4.7 在 linux 中编译并运行它。有用。我不擅长 C++。但我听说当你想从 c++ 源文件调用 c 函数时,你需要声明'extern "C"'。为什么这个程序有效?

#include <unistd.h>
#include <iostream>

using namespace std;

int main(int argc, const char **argv) {
    rmdir("t");
    cout << "Hello" << endl;
    return 0;
}
4

1 回答 1

4

unistd.h文件被编写为与 C++ 兼容。如果你往里面看,你会发现类似的东西:

#ifdef __cplusplus
extern "C" {
#endif

...

#ifdef __cplusplus
} // extern "C"
#endif

如果您在unistd.h不受这种方式保护的平台上,那么您需要extern "C"在包含周围使用。

于 2013-10-07T10:37:01.307 回答