extern关键字

在C和C++中,extern 是一个关键字,用于声明一个全局变量或函数,表明它是在其他文件中定义的。extern 声明告诉编译器该变量或函数在当前文件中并没有定义,而是在其他文件中定义的。这使得在一个文件中可以引用另一个文件中定义的变量或函数。

1. extern 用于全局变量:

// File1.c
int globalVar = 42;

// File2.c
extern int globalVar;  // 声明 globalVar,告诉编译器它在其他文件中定义
// 使用 globalVar

在上面的例子中,extern int globalVar; 声明告诉编译器,globalVar 是在其他文件中定义的。这使得 File2.c 中可以使用 globalVar 而不会导致重复定义错误。

2. extern 用于函数声明:

// File1.c
void someFunction();  // 函数声明

// File2.c
extern void someFunction();  // 函数声明,告诉编译器它在其他文件中定义
// 使用 someFunction

与全局变量类似,extern 也可以用于函数声明,使得在一个文件中可以调用在其他文件中定义的函数。

3. extern 用于头文件:

通常,extern 与头文件一起使用,以便在多个文件中共享变量或函数的声明。头文件中包含了变量或函数的声明,而实际的定义则在一个或多个源文件中。

// header.h
#ifndef HEADER_H
#define HEADER_H

extern int globalVar;  // 在头文件中声明全局变量

void someFunction();  // 在头文件中声明函数

#endif // HEADER_H

然后在实际的源文件中包含头文件并进行定义:

// File1.c
#include "header.h"
int globalVar = 42;

// File2.c
#include "header.h"
void someFunction() {
    // 函数实现
}

这样可以确保在多个文件中使用相同的变量和函数声明,避免重复代码并保持一致性。

总体来说,extern 关键字用于告诉编译器某个变量或函数的定义在其他文件中,从而使得这些定义在不同文件中的源代码可以协同工作。

你可能感兴趣的:(c++,开发语言)