博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cplusplus解析
阅读量:6637 次
发布时间:2019-06-25

本文共 625 字,大约阅读时间需要 2 分钟。

经常在头文件包含代码里面看到如下代码

#ifndef MAC_API_H#define MAC_API_H#ifdef __cplusplusextern “C”{#endif………………………#ifdef __cplusplus};#endif#endif  /*MAC_API_H*/

解释:C/C++编译器对函数和变量名的命名方法不一样,例如C++中重载的函数有多个名字,而C的函数只有一个名字。这样,当C编译器去引用C++编译器编译出来的符号时,会找不到链接。C++中定义了__cplusplus,而C语言没有该定义。通过这个区别,可以识别代码是C还是C++。

当一个头文件可能既被C程序引用,又被C++程序引用时,需要使用如上代码进行区分。为了在C++代码中调用用C写成的库函数,当C++编译的应用程序需要调用C编写的函数库,两者编译器对重载函数的处理不同,造成C++链接器无法找到C库定义的函数。因此,需要用extern “C”来告诉C++编译器,该文件是用C语言编写的,请用C的方式来链接它们。

 

 

C/C++编译器预定义的五个帮助宏名。

__LINE__ : 代表当前源码中的行号,整数

__FILE__ : 代表当前文件的名字,字符串

__TIME__: 代表源文件编译时间,字符串,格式为HH:MM:SS

__DATE__: 代表源文件编译日期,字符串,格式为m dd yyyy

 

不同IDE定义了不同的预编译选项,在开发时,注意收集。

 

 

 

转载地址:http://yvsvo.baihongyu.com/

你可能感兴趣的文章
FMDB使用
查看>>
博为峰Java技术题 ——JavaSE Scanner类Ⅰ
查看>>
sshd(pam_google_authenticator)[12060]: Failed to read "/root/.google_authenticator"
查看>>
js中call用法
查看>>
高级文件系统管理_学习笔记
查看>>
去掉主页 breadcrumb导航条上的<Liferay>字样
查看>>
Linux(一) 基本操作
查看>>
结合SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台教程
查看>>
SDN in Action: OpenDaylight MD-SAL Programming
查看>>
Java8 十大新特性详解
查看>>
【51CTO学院三周年】在51cto的成长之路
查看>>
设计模式——抽象工厂模式
查看>>
我的友情链接
查看>>
Maven学习总结(七)——eclipse中使用Maven创建Web项目
查看>>
JEESZ分布式框架简介
查看>>
学科前沿技术作业二(下)
查看>>
tar
查看>>
vsftpd服务
查看>>
一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建输出验证码图片的控制器...
查看>>
UITextView实现占位文字的两种方法
查看>>