#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_
目录
相关文章
|
3月前
|
消息中间件 NoSQL C语言
extern关键字的作用
extern关键字的作用
|
5月前
|
存储 Cloud Native Linux
C++ extern关键字作用
C++ extern关键字作用
|
6月前
#define定义标识符以及定义宏
#define定义标识符以及定义宏
33 0
|
编译器 C++
在 C++ 中命名 Mangling 和 extern “C”
C++ 支持函数重载,即可以有多个同名但不同参数的函数。C++ 编译器在生成目标代码时如何区分不同的函数——它通过添加有关参数的信息来更改名称。这种向函数名称添加附加信息的技术称为Name Mangling。C++ 标准没有指定任何特定的名称修改技术,因此不同的编译器可能会向函数名称附加不同的信息。 
63 0
|
编译器 Linux C语言
C++学习笔记(二)——extern “C“ 用法详解
C++学习笔记(二)——extern “C“ 用法详解
C++学习笔记(二)——extern “C“ 用法详解
|
C语言 C++ 编译器
C++中extern “C”含义深层探索
1.引言   C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。
1385 0