您的位置:首页 > 编程语言 > C语言/C++

C++ Primer 学习笔记与思考_3 ---头文件那些事儿(extern)

2015-08-13 12:35 253 查看
(一)extern在头文件中的用法

因为头文件包含在多个源文件中,并且变量的定义只能出现一次,所以在头文件中, 只可以声明不可以出现定义。我们可以在头文件中用extern声明全局变量,这样在包含此头文件的cpp 中可直接使用 声明过的这个全局变量(如以下程序中的变量a)。

但是有三个例外:

1.头文件中可以定义类

2.值在编译时就已经知道的const对象

3.可以定义inline函数

extern int ival; // yes
extern int ival=1; //error
int ival; //error
const 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    //end
using namespace std;
int a = 2; //extern 都是针对全局变量的(如果是局部的不能在另一个cpp中使用)
int main()
{
	cout << a << " " << b << endl;
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: