cpp(8) extern/ifndef/inline函数
来源:互联网 发布:个人简介网页制作源码 编辑:程序博客网 时间:2024/06/06 18:08
标签(空格分隔): cpp
声明和定义
声明:加关键字extern
定义只可以出现一次,而声明则可以出现多次。因为头文件包含在多个源文件中,所以不应该含有变量或函数
的定义。除了类、const对象(值已知)、inline函数
extern int ival = 10; // initializer, so it's a definitiondouble fica_rate; // no extern, so it's a definition
虽然 ival 声明为extern,但是它有初始化式,代表这条语句是一个定义。类似地,fica_rate的声明虽然没有初始化式,但也是一个定义,因为没有关键字 extern。同一个程序中有两个以上文件含有上述任一个定义都会导致多重定义链接错误。
避免多重包含
可以使用这些设施来预防多次包含同一头文件:
#ifndef SALESITEM_H#define SALESITEM_H// Definition of Sales_itemclass and related functions goes here#endif
inline
C++ 中有些函数可以声明为内联(inline)函
数。编译器遇到内联函数时就会直接扩展相应代码,而不是进行实际的函数调用。
调用函数比求解等价表达式要慢得多。在大多数的机器上,调用函数都要做很多工作;调用前要先保存寄存器,并在返回时恢复;复制实参;程序还必须转向一个新位置执行。
cout << shorterString(s1, s2) << endl;\\在编译时将展开为:cout << (s1.size() < s2.size() ? s1 : s2)<< endl;
将inline函数写入头文件
阅读全文
0 0
- cpp(8) extern/ifndef/inline函数
- #ifndef & extern
- 内联函数:static inline 和 extern inline 的含义
- 内联函数:static inline 和 extern inline 的区别
- 内联函数:static inline 和 extern inline 的含义
- inline.cpp
- 头文件,实现文件,inline函数,外部存储类型extern
- static inline 和 extern inline
- extern inline和static inline
- 内联函数释疑:static inline 和 extern inline 的含义及比较
- ifdef/ifndef/extern/struct/static
- extern,inline,宏,sizeof
- extern static与inline
- 关于 extern inline
- 关于 extern inline
- Something about "extern inline " ?
- 关于 extern inline
- 文件包含 static inline,extern inline
- 图像数据处理(3)
- NIO 学习(三) channel(主要介绍channel----FileChannel详解--通道间的信息传输)
- sso 单点登录cas使用(1): cas 4.2.7 maven cas-overlay部署服务端
- CentOS搭建JavaWeb开发环境
- nginx日志记录请求和响应数据
- cpp(8) extern/ifndef/inline函数
- 让人混淆的servlet和webservice
- 拓扑编号
- Java 的 JSON 开源类库之JackSon工具类--JSONUtils
- springmvc json 生成两种方式
- java.net.preferIPv4Stack的相关设置
- 复杂查询A表的某个字段在B表中的所有数量
- mysql查询计划详解
- [HDU 5187][组合数求和][快速幂+乘]zhx's contest