extern关键字的作用

简介: extern关键字的作用

extern 关键字

强调 1

都是c或者都是c++时使用extern关键字,且都在一个源文件中。

//声明外部变量或函数
#include <stdio.h>
int main(int argc, char const *argv[])
{
  extern var_main;    //提前声明
  extern void func_main();
  func_main();
  printf("main var_main = %d\n", var_main);
  return 0;
}
int var_main = 100;
void func_main() {
  printf("func_main var_main = %d\n", var_main);
}
代码执行结果:
func_main var_main = 100
main var_main = 100

强调2

在外部文件中

//extern_main.c中
#include <stdio.h>
int main(int argc, char const *argv[])
{
  extern var_main;    //提前声明
  extern var_other; //声明在外部文件
  extern void func_main();
  extern void func_other();
  func_main();
  printf("main var_main = %d\n", var_main);
  printf("main var_other = %d\n", var_other);
  return 0;
}
int var_main = 100;
void func_main() {
  printf("func_main var_main = %d\n", var_main);
}
//extern_other.c中
#include <stdio.h>
int var_other = 99;
void func_other() {
  printf("func_other var_other = %d\n", var_other);
}
编译命令:gcc -o extern  extern_mian.c extern_other.c
代码执行结果:
func_main var_main = 100
main var_main = 100
main var_other = 99

强调3

c++ 调用 c 编译的变量或函数

//extern_c.c文件
#include <stdio.h>
int var_c = 99;
void func_c() {
  printf("func_c var_c= %d\n", var_c);
}
//extern_cpp.cpp文件
#include <stdio.h>
extern "C" int var_c;
extern "C" void func_c();
int main() {
  func_c();
  var_c = 100;  //重新赋值
  printf("extern_cpp var_c= %d\n", var_c);
  return 0;
}

编译命令gcc extern_c.c -cgcc extern_cpp.cpp -c分别生成extern_c.oextern_cpp.o 文件,再通过gcc extern_c.o extern_cpp.o -o extern_cplus_c命令生成可执行文件 extern_cplus_c

代码执行结果:
func_c var_c= 99
extern_cpp var_c= 100

充电站

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,分享给大家Linux,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK等技术内容,立即学习

目录
打赏
0
0
0
0
1
分享
相关文章
|
4月前
|
【C语言】extern 关键字详解
`extern` 关键字在C语言中用于跨文件共享变量和函数的声明。它允许你在一个文件中声明变量或函数,而在其他文件中定义和使用它们。理解 `extern` 的使用可以帮助你组织和管理大型项目的代码。
363 3
【C语言函数】static和extern关键字修饰
【C语言函数】static和extern关键字修饰
|
11月前
|
关键字static#define 定义常量和宏
关键字static#define 定义常量和宏
67 0
【C/C++ 关键字 存储类说明符 】一文带你了解C/C++ 中extern 外部声明 关键字的使用
【C/C++ 关键字 存储类说明符 】一文带你了解C/C++ 中extern 外部声明 关键字的使用
159 1
learn_C_deep_10 extern在多文件下的理解、struct 关键字的理解与柔性数组、union 的内存级布局理解、enum 关键字的基本理解、typedef 的理解与分类、关键字总结
learn_C_deep_10 extern在多文件下的理解、struct 关键字的理解与柔性数组、union 的内存级布局理解、enum 关键字的基本理解、typedef 的理解与分类、关键字总结
C语言中extern,static, register,volatile 关键字的作用;保姆级教学!
C语言中extern,static, register,volatile 关键字的作用;保姆级教学!
学C的第四天(各种操作符补充;简单了解多种关键字,define定义常量和宏,结构体)(1)
10.6:关系操作符: >:大于 >=:大于等于 <:小于 <=:小于等于 !=:用于测试“不相等” ==:用于测试“相等”