#ifdef _cplusplus extern “C“ 含义及应用

简介: #ifdef _cplusplus extern “C“ 含义及应用

#ifdef _cplusplus:编译器如果是C++  

extern"C" 来告诉编译器:这是一个用C写成的库文件,请用C的方式来链接它们。

他们经常出现在.h文件中。

例:

#ifndef _INC_MYSOCKETCLIENT_H_
#define _INC_MYSOCKETCLIENT_H_
//#define Import_SSS
#ifdef Import_SSS
#define API _declspec(dllexport)
#else 
#define API _declspec(dllimport)
#endif
#ifdef _cplusplus//extern"C" 来告诉编译器:这是一个用C写成的库文件,请用C的方式来链接它们。
extern "C" {
#endif // _cplusplus
  API//导出函数,让外界调用。
  int socketClient_Init(void **handle);
  API
  int socketClient_Send(void *handle, unsigned char *buf, int buflen);
  API
  int socketClient_Recv(void *handle, unsigned char *buf, int *buflen);
  API
  int socketClient_Destory(void *handle);
#ifdef _cplusplus
}
#endif // _cplusplus
#endif //_INC_MYSOCKETCLIENT_H_
目录
相关文章
|
6月前
|
消息中间件 NoSQL C语言
extern关键字的作用
extern关键字的作用
|
6月前
|
编译器
关键字static#define 定义常量和宏
关键字static#define 定义常量和宏
39 0
|
6月前
#define定义常量和宏
#define定义常量和宏
41 0
|
存储 Cloud Native Linux
C++ extern关键字作用
C++ extern关键字作用
#define定义标识符以及定义宏
#define定义标识符以及定义宏
64 0
|
编译器
#define 定义常量和宏
工作机理:直接替换,以下列代码为例编译器直接将用到max的地方替换为100
65 0
|
编译器 C++
在 C++ 中命名 Mangling 和 extern “C”
C++ 支持函数重载,即可以有多个同名但不同参数的函数。C++ 编译器在生成目标代码时如何区分不同的函数——它通过添加有关参数的信息来更改名称。这种向函数名称添加附加信息的技术称为Name Mangling。C++ 标准没有指定任何特定的名称修改技术,因此不同的编译器可能会向函数名称附加不同的信息。 
104 0