声明
声明(declaration)区别于定义,可以使一个别处定义的变量或函数为程序所知。
当一个程序被分割为多个文件时,使用其他地方定义的变量,就需要在当前文件声明。
变量声明
方法
变量声明使用关键字 extern,以和正常的变量定义区分开:
extern int a; // 声明 a
int b; // 定义 b
声明变量的同时不能初始化变量,否则声明关键字 extern 将无效。
实例
在 def_file.cpp 中定义一个函数,使当前的全局变量 a 自增 1,但是 a 在另一个文件中才定义,所以需要声明:
extern int a; // 若不声明 a,则下面的 a_plus_one 函数将报错
void a_plus_one()
{
a++;
}
主文件中则可以引入该文件:
#include "def_file.cpp"
#include <iostream>
int a = 1;
int main()
{
a_plus_one();
std::cout << "a = " << a << std::endl;
return 0;
}
运行主文件,输出 a = 2。
函数声明
声明方法
和函数的定义十分类似,不再需要关键字,只需要使用分号代替函数体。
int sum(int a[], size_t n);
内联函数
带关键字 inline 的内联函数允许多次定义(不然就无法内联了),但每一处的定义必须完全相同。
BEYOND THE ARTICLE
读完了,有什么想法?
阅读已保存的问答示例,并循着引用回到原文。
— 本文完 — 返回文章列表