c++的extern “C“

extern "C"浅析

extern"C"是用于在c++中声明c函数的关键字。在c++中函数的名称会根据函数的参数类型和返回类型进行重载,而c函数的名称是通过链接器进行链接的。如果想要在c++中调用一个c函数,就需要使用 extern"C"来告诉编译器以c的方式链接函数。
当在c++中使用 extern"C"修饰一个函数时,编译器会对函数名进行特殊处理,以确保函数名在链接过程中保持与c语言兼容。这意味着c++编译器不会对函数名进行重载或修饰,而是按照c的命名约定来生成函数名。
使用 extern "C" 的主要场景是在c++代码中调用 C 语言编写的库函数。通过使用 extern "C",可以保证 c++代码正确地链接和调用c函数,避免由于函数名修饰导致的链接错误。
需要注意的是,extern "C" 只能用于全局函数和全局变量的声明,不能用于类成员函数。如果需要在 C++ 类中调用c函数,可以将c函数声明为静态成员函数,并在类外部添加 extern "C" 修饰符。
总结来说,extern "C" 是用于在c++中声明c函数,并告诉编译器以c的方式链接函数,以保证在c++代码中正确调用c函数。

代码示例

myadd.c

int myadd(int a,int b)
{
    return a + b;
}

myadd.h

#pragma once

#if __cplusplus
extern "C"{
#endif

    int myadd(int a,int b);


#ifdef __cplusplus
}
#endif

main.cpp

#include <iostream>
#include "myadd.h"

using namespace std;

int main()
{
    cout << myadd(2,3) << endl;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/2301_77164542/article/details/132555799