gpt4 book ai didi

c++ - 为什么c++源代码可以在没有extern "C"的情况下调用c代码?

转载 作者:太空狗 更新时间:2023-10-29 11:45:25 25 4
gpt4 key购买 nike

这里是调用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;
}

最佳答案

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

#ifdef __cplusplus
extern "C" {
#endif

...

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

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

关于c++ - 为什么c++源代码可以在没有extern "C"的情况下调用c代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19222521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com