码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-06-26 13:39:48      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:全局变量   使用方法   提示   一个   ext   article   使用   而且   定义类   

(一)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;
}


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

标签:全局变量   使用方法   提示   一个   ext   article   使用   而且   定义类   

原文地址:http://www.cnblogs.com/slgkaifa/p/7080002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!