[c++11]宏
时间:2019-10-24
本文章向大家介绍[c++11]宏,主要包括[c++11]宏使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
extern “C”的作用如下:
核心作用:实现C和C++的混合编程。extern “C”提供一个链接交换指定符号,用于告诉C++这段函数是C函数,extern “C”后面的函数不使用C++的名字修饰,而是使用C。
C++支持函数重载,C不支持函数重载。函数被C++编译后在库中的名字与C语言不同。如void add(int a, int b),该函数在C编译器编译后,库中名字为_add,而C++编译器则会生成add_int_int的名字。故C++提供C链接交换指定符号extern “C”来解决名字匹配> 问题。
被extern “C”限定的函数或变量是extern类型,extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,此关键字告诉编译器,该声明的函数可以在本模块或其它模块使用。被extern “C”修饰的变量和函数按照C语言方式编译和链接。
与extern对应的关键字是static,被static修饰的全局变量和函数只能在本模块中使用。如果一个函数或变量只能在本模块中使用时,不能用extern “C”修饰。
#include <iostream>
using namespace std;
int main(void)
{
cout << "__FILE__:" << __FILE__ << endl;//当前的文件名(绝对路径):C:\Users\xxx\source\repos\案例\宏\Source.cpp
cout << "__LINE__:" << __LINE__ << endl;//当前行: 10
cout << "__DATE__:" << __DATE__ << endl;//当前日期:Oct 24 2019
cout << "__TIME__:" << __TIME__ << endl;//当前时间:11:29:59
#ifdef __STDC__
cout << "__STDC__:" << __STDC__ << endl;/* use standard C future */
cout << "__STDC_VERSION__:" << __STDC_VERSION__ << endl;
#else
/* use extend C future */ //因为当前是用c++编译
cout << "不使用标准c" << endl;
#endif // __STDC__
cout << "__cplusplus:" << __cplusplus << endl;//c++的编译器版本:199711
#ifdef __OBJC
cout << "__OBJC__:" << __OBJC__ << endl;//测试是否使用object-c编译器编译还是c编译器编译
#else
cout << "不使用object-c编译器" << endl;
#endif // __OBJC
#ifdef __ASSEMBLER__
cout << "__ASSEMBLER__:"<<__ASSEMBLER__ << endl;//处理汇编时用到
/* 汇编代码 */
#else
cout << "不使用汇编代码" << endl;
#endif
return 0;
}
原文地址:https://www.cnblogs.com/tailiang/p/11731329.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- nginx配置ssl证书实现https
- 有意思的 Node.js 内存泄漏问题
- 【技术干货】聊聊在大厂推荐场景中embedding都是怎么做的
- 特征工程|连续特征的常见处理方式(含实例)
- 一个请求过来,Spring MVC 是如何找到正确的 Controller 的?
- 吴师兄导读:如何快速入门数据结构和算法
- 你真的会做 2 Sum 吗?
- 漫画:什么是计数排序?
- vue使用腾讯位置服务选点组件问题总结
- Spring 的 Controller 是单例还是多例?怎么保证并发的安全
- Python游戏开发 制作AI贪吃蛇!
- Python老司机手把手带你写爬虫,整站下载妹子图,一次爽个够!
- 教你用云开发打造一个双端自动发布的博客体系(下)
- 国科大&中科院提出CANet:用于图像复原的拼接注意力网络
- 【Kubernetes】Octant部署