extern "C"{...}的作用

假设有add.c文件如下:

int add(int x, int y)
{
	return x + y;
}

为了使main.cpp能使用add函数,add.h应该为:

#ifndef ADD_H
#define ADD_H

//如果此头文件被包含在C++源程序文件中,则按照C++编译时,会对声明的函数进行名字改编,
//如果头文件所声明的函数是C语言实现的,则链接就会因为找不到名字而出错。为了使C++能
//使用C语言实现的函数,需要禁止C++编译时的名字改编,这就是extern "C" {}的作用。
#ifdef __cplusplus
extern "C"
{
#endif

int add(int, int);

#ifdef __cplusplus
}
#endif

#endif

猜你喜欢

转载自blog.csdn.net/csdn_gddf102384398/article/details/88753390
今日推荐