C、C++模块互调分析和总结.docxVIP

  • 3
  • 0
  • 约3.1千字
  • 约 4页
  • 2022-07-18 发布于上海
  • 举报
[转载][转]C、C++模块互调 前面的 extern C declspec(dllexport) declspec(dllimport)都是用于函数或者变量,甚至类的声明的(可以把 extern C 前面的 extern C declspec(dllexport) declspec(dllimport)都是用于函数或者变量,甚至类的声明的(可以把 extern C放在 class 的前面,但是编译器会忽略掉,最后产生的还是 C++修饰符,而不是C 修饰符) 这样的用法有个好处就是下面的代码可以在混有类的函数和变量上使用下面的宏,虽然对类不起作用: #ifdef cplusplus extern C { //函数声明 //变量声明,变量一般前面都有 extern //类声明,这个不起作用,编译器直接忽略掉 class 前面的extern “C” #ifdef cplusplus } #endif C 和 C++ 对应不同的调用约定,产生的修饰符也各不相同,如下: 调用约定 C 命名约定 ( cdecl) Fastcall 命名约定 ( fastcall) 标准调用命名约定 ( stdcall) extern C 或 .c 文 件 _test @test@0 _test@0 .cpp、.cxx 或 /TP ?test@@ZAXXZ

文档评论(0)

1亿VIP精品文档

相关文档