码迷,mamicode.com
首页 > 其他好文 > 详细

在.cpp文件中定义变量,在.h文件中extern

时间:2015-05-11 12:24:58      阅读:269      评论:0      收藏:0      [点我收藏+]

标签:

 

在cocos2d-x 的D:\phoneclient\cocos2dxlib\cocos\base\CCValue.h 文件中,发现如下代码:

技术分享

全局查找之后,在D:\phoneclient\cocos2dxlib\cocos\base\CCValue.cpp 文件中,找到变量的定义:

技术分享

extern int a;//这是声明a
int a;//这是定义a
正常情况下都是h声明cpp定义。

声明和定义是不同的,声明可以有多次,定义只能有一次。
h文件可能被很多cpp文件包含,所以里面只能写声明不能写定义,如果写定义,被包含几次就定义了几次。

条件指示符#ifndef 的最主要目的是防止头文件的重复包含和编译。一个源文件里包含了多个同一个头文件,最终只会包含一次当多个源文件包含了同一个头文件时,每个源文件就会包含一次,里面的变量就会被定义多次,链接时出错。
还有,头文件以及预编译宏#ifndef之类是C语言的概念,与编译原理无关

 

在.cpp文件中定义变量,在.h文件中extern

标签:

原文地址:http://www.cnblogs.com/yyxt/p/4494043.html

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