计算机

声明

声明(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

读完了,有什么想法?

阅读已保存的问答示例,并循着引用回到原文。

查看公开问答示例
— 本文完 — 返回文章列表