编程中extern什么意思
-
在编程中,关键字"extern"用于声明一个变量或函数是在其他地方定义的。它指示编译器该变量或函数在当前文件中并没有定义,而是在其他文件中定义。
具体来说,"extern"关键字常用于以下两种情况:
- 在多个文件中使用同一个全局变量:当在一个文件中定义了一个全局变量,而其他文件也需要使用该变量时,可以使用"extern"关键字来告诉编译器该变量是在其他文件中定义的。这样,编译器就不会在当前文件中重新定义该变量,而是在连接阶段从其他文件中获取其定义。
举例来说,我们在文件A中定义了一个全局变量var,希望在文件B中使用该变量。在文件B中,我们使用"extern"关键字来声明该变量:
// 文件A.c int var = 10; // 文件B.c extern int var; // 使用extern声明var int main() { printf("%d", var); // 输出10 return 0; }- 引用其他文件中定义的函数:当在一个文件中调用了另一个文件中定义的函数时,需要使用"extern"关键字来告诉编译器该函数是在其他文件中定义的。
举例来说,我们在文件A中定义了一个函数func,希望在文件B中调用该函数。在文件B中,我们使用"extern"关键字来声明该函数:
// 文件A.c void func() { printf("Hello, World!\n"); } // 文件B.c extern void func(); // 使用extern声明func int main() { func(); // 调用func函数,输出"Hello, World!" return 0; }总之,"extern"关键字用于在编译过程中告诉编译器某个变量或函数是在其他地方定义的,而不是在当前文件中定义。这样可以方便地在不同的文件中使用和共享变量或函数。
1年前 -
在编程中,"extern" 是一个关键字,用于声明一个变量或函数是在其他地方定义的。它用于向编译器提供外部定义的信息,告诉编译器该变量或函数在其他文件或模块中定义,从而避免重复定义。
具体来说,extern 声明可以应用于变量和函数。
- 声明全局变量: 在一个文件中声明一个变量为 extern 类型,表示该变量在其他文件中已经定义,并且可以被其他文件引用。
示例:
file1.c:extern int num;file2.c:
int num = 10;在文件 file1.c 中声明了变量 num 为 extern 类型,表示 num 变量在其他地方定义。
在文件 file2.c 中定义了变量 num,并给定一个初值。- 在多文件编程中共享全局变量: 在多个源文件中可以使用 extern 声明来共享全局变量。
示例:
file1.c:int num;file2.c:
extern int num;在 file1.c 中定义了全局变量 num,而在 file2.c 中使用 extern 声明来引用它。这样在编译时,文件 file2.c 就可以使用在 file1.c 中定义的 num 变量。
- 声明函数原型: 当在一个源文件中调用另一个源文件中的函数时,可以使用 extern 声明来提供函数原型。
示例:
file1.c:float add(float a, float b);file2.c:
extern float add(float a, float b);在 file1.c 文件中给出了函数 add 的原型,而在 file2.c 中使用 extern 声明来引用它。
这样编译器就知道在 file2.c 中调用的是其他地方定义的 add 函数。- 多文件共享函数: 在多个源文件中使用同一个函数时,需要在每个源文件中使用 extern 声明来引用函数。
示例:
file1.c:void sayHello();file2.c:
extern void sayHello();在 file1.c 中给出了函数 sayHello 的定义,而在 file2.c 中使用 extern 声明来引用它。
- 引用静态全局变量: 在一个源文件中引用另一个文件中的静态全局变量时,可以使用 extern 声明。
示例:
file1.c:static int count = 10;file2.c:
extern int count;在 file1.c 中定义了一个静态全局变量 count,而在 file2.c 中使用 extern 声明来引用它。
通过使用 extern 声明,可以使得在其他文件中可以访问和使用 file1.c 中的静态全局变量。1年前 -
在编程中,extern是一个关键字,用于声明一个全局变量或函数,表示该变量或函数在其他文件中定义。它的作用是告诉编译器这个变量或函数在其他文件中定义,编译器在编译的过程中会在其他文件中寻找该变量或函数的定义。
extern主要用于解决多文件编程中的符号重定义问题。当一个变量或函数需要在多个文件中使用时,我们可以将其定义为extern,然后在其他文件中进行引用。
具体可以分为以下两种情况:
- extern用于声明全局变量:
在一个文件中使用extern关键字声明一个全局变量,表示该变量在其他文件中定义。
例如,我们在文件A中定义了一个全局变量x:
// 文件A int x;在文件B中,我们可以使用extern关键字来引用变量x:
// 文件B extern int x; // 使用变量x这样,在编译文件B时,编译器会在其他文件中寻找变量x的定义。
- extern用于声明全局函数:
在一个文件中使用extern关键字声明一个全局函数,表示该函数在其他文件中定义。
例如,我们在文件A中定义了一个全局函数sum:
// 文件A int sum(int a, int b) { return a + b; }在文件B中,我们可以使用extern关键字来引用函数sum:
// 文件B extern int sum(int a, int b); // 调用函数sum同样地,在编译文件B时,编译器会在其他文件中寻找函数sum的定义。
总结起来,extern关键字用于在一个文件中声明一个全局变量或函数,表示该变量或函数在其他文件中定义。通过使用extern关键字,我们可以在多个文件中共享变量和函数。在编译的过程中,编译器会在其他文件中查找这些变量或函数的定义,以便正确地编译整个程序。
1年前