C++ Primer 学习笔记与思考_3 ---头文件那些事儿(extern)
来源:互联网 发布:js 两个时间相减 编辑:程序博客网 时间:2024/05/22 18:40
(一)extern在头文件中的用法
因为头文件包含在多个源文件中,并且变量的定义只能出现一次,所以在头文件中, 只可以声明不可以出现定义。我们可以在头文件中用extern声明全局变量,这样在包含此头文件的cpp 中可直接使用 声明过的这个全局变量(如以下程序中的变量a)。
但是有三个例外:
1.头文件中可以定义类
2.值在编译时就已经知道的const对象
#ifndef 检测指定的预处理器变量是否未定义,#define接受一个名字并定义改名字为预处理器变量。#endif代表处理的边界。
因为头文件包含在多个源文件中,并且变量的定义只能出现一次,所以在头文件中, 只可以声明不可以出现定义。我们可以在头文件中用extern声明全局变量,这样在包含此头文件的cpp 中可直接使用 声明过的这个全局变量(如以下程序中的变量a)。
但是有三个例外:
1.头文件中可以定义类
2.值在编译时就已经知道的const对象
3.可以定义inline函数
extern int ival; // yesextern int ival=1; //errorint ival; //errorconst int ival =3; //yes(二)使用头文件保护符避免多重包含
#ifndef 检测指定的预处理器变量是否未定义,#define接受一个名字并定义改名字为预处理器变量。#endif代表处理的边界。
// mine.h#include <iostream>extern int a;const int b = 2;//int c; error 提示重复定义//hello.cpp#include"mine.h"int f(int x){return a++;}//amin.cpp#ifndef TEST //检测指定的预处理器变量是否未定义#define TEST //定义预处理器变量#include "mine.h"#endif //endusing namespace std;int a = 2; //extern 都是针对全局变量的(如果是局部的不能在另一个cpp中使用)int main(){cout << a << " " << b << endl;return 0;}
2 0
- C++ Primer 学习笔记与思考_3 ---头文件那些事儿(extern)
- 头文件那些事儿
- #ifdef #ifndef extern "c"与头文件
- C++ Primer 学习笔记与思考_4 ---getline&&size_type&&const_iterator混搭
- C++ Primer 学习笔记与思考_8 指针和const的那些麻烦
- C++ Primer 学习笔记与思考_9 表达式中过的那些容易忽略的地方
- 头文件与extern
- 头文件与extern
- 学习笔记——c++primer学习(二)_头文件引用
- 头文件中对extern的思考
- C++ primer 摘要《extern、变量函数声明与定义、头文件、动态分配与释放》20090119
- 【C语言学习笔记】一、数据类型那些事儿
- C++Primer学习心得--头文件
- 《C++Primer》学习疑惑1-----const头文件定义问题
- C++Primer::头文件设计基本原则 与 预处理器介绍
- 《C++ primer》学习笔记之一:#include如何寻找头文件
- C++ Primer 学习笔记:头文件的使用小结
- 《C++ primer》学习笔记之一:#include如何寻找头文件
- 关于UCOSII进出中断时的临界…
- 第五篇:uCOS-II 信号量及其…
- 串口 CTS/RTS
- C语言register关键字—最快的…
- TS流解析之PAT表格解析
- C++ Primer 学习笔记与思考_3 ---头文件那些事儿(extern)
- 单链表之删除某一位置节点
- TS流解析之PMT表格解析
- NC - 网络编码的Java实现(1)-GF28基本运算
- 利用哈希表实现数据查找
- android Graphics(一):概述及基本几何图形绘制
- 使用storyboard,设置系统自带的tabbar的选中状态,未选中状态
- Linux+Apache+DB2+PHP环境配置
- Standard C 语言标准函数库(ANSI C)