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包
含头文件的方式有关的,如果被包含的头文件是用 <> 括起来的,编译器将从标准库目录来搜索文
件,如果是用 " "括起来的,编译器将从当前目录开始搜索文件。