读书人

c++中extern关键字

发布时间: 2012-04-10 21:03:56 作者: rapoo

c++中extern关键字求助
可以声明其他文件中的全局变量
这里其它文件怎么定义的,不通过include指定其它文件的话,怎么寻找?是在当前目录下面吗,谢谢

能不能举个例子

[解决办法]
应该工程中吧
[解决办法]
要是VS的话,就是左边那栏工程里的那些
[解决办法]
如果是extern const,似乎两个文件都得加extern
[解决办法]
先看我的范例代码吧,后面我会解释的:

//test.h 头文件
#ifndef TEST_H
#defineTEST_H

int num = 7;

#endif

//test.cpp 源文件
#include <iostream>
#include "test.h "
using namespace std;

int main()
{
extern int num;
cout < <num;
return 0;
}

运行以后,输出的值是7。源文件中用extern关键字表示这是一个外部变量,已经在别处定义过

了。这里多说一下,变量的定义与否直接关系着是否要为它重新分配内存空间,extern关键字表

明这个变量已经在别处定义过了,此处不需要再为其分配内存空间了,可以直接对其进行使用

了。

第二个问题,其它的文件就是像我写的test.h那样定义的。预处理指令是用来防止重复包含头文

件的,这在公司的大型项目中非常重要,因为经常有很多头文件是多个源文件都要使用的,不使

用预处理指令很容易造成重复包含的问题。而编译器是如何查找头文件的,这个是与#include包

含头文件的方式有关的,如果被包含的头文件是用 <> 括起来的,编译器将从标准库目录来搜索文

件,如果是用 " "括起来的,编译器将从当前目录开始搜索文件。

读书人网 >C++

热点推荐