C语言关键字:const,static,extern

static关键字
  • 使用字面常量和变量对static修饰的局部变量的区别:(只进行一次赋值的原因)
  1. 字面常量初始化static:链接时不生成代码,因此只执行一次
  2. 变量初始化static:因为使用变量初始化const,编译器并不知道变量的初始值为多少,因此会生成代码,在第一次赋初值后,会将一个标志位由0置1

extern关键字
  • 外部关键字将其他文件定义的全局变量和函数引入本文件,告诉编译器此函数/变量是在其中文件中定义的

  • 示例:

// Test_01.cpp
# include<stdio.h>
int g_max = 10 ; // 这是变量的定义
void fun(){
	printf("g_max = %d",g_max);
}
// Test_02.cpp
# include<stdio.h>
// 通过extern外部关键字调用其他文件中的全局变量和全局函数
extern int g_max ; // 这是变量的声明
extern void fun();
int main(){
	fun();
	return 0 ;
}

外部关键字extern和静态关键字static的联系
  • 使用extern关键字可以调用其他文件中定义的全局变量和全局函数
  • 给局部变量添加static静态关键字可以延长其寿命,但不能改变其可见性
  • 对全局变量和全局函数添加static关键字,将改变其可见性,不改变其寿命。即对应的全局变量和全局函数的首名依然为程序执行时,但其对外部文件不可见,即使外部文件中使用外部关键字extern声明这些全局变量和全局函数

const关键字(未完待续)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值