C语言关键字------(2)

发布时间:2024年01月21日

《本文采用发现问题并解决问题的方式行文》

一.extern关键字

发现问题:

我们发现计算机不认识g_val。

解决问题:

在不同文件中,声明变量和函数是必要的。即extern存在的意义。

成功运行。

发现问题:

可不可以在main.c文件中向test.c文件一样,extern g_val=100;呢?

答案是否定的:

解决问题:

1.声明没有开辟空间;

2.“=100”是初始化或赋值操作;

3.所有的变量声明的时候,不能设置初始值。

二.头文件的来源(为什么要有头文件)

单纯的使用源文件,组织项目语言的时候,项目越大越复杂的时候,维护成本会变得越来越高!

.h:头文件组织项目结构的时候,减少大型项目的维护成本问题。

改改我们的代码:

三.static关键字

观察一和二,我们可以很好的回答以下问题:

1.变量可以跨文件访问吗??

答:可以!

2.函数可以跨文件访问吗??

答:可以!

3.在具体的应用场景当中,有没有可能,我们不想让全局变量或函数跨文件访问,只在本文件内部被访问?------static!!!

加入static后,直接报错!且错误类型为LNK,即链接时报错。

(1)结论一<static对全局变量的影响>

static修饰全局变量,该变量只在本文件内被访问,不能被外部其他文件直接访问,但是可以通过函数,设置接口间接访问。

更改了全局变量的作用域。

(2)结论二

static修饰函数,该函数只能在本文件内被访问,不能在外部其他文件直接访问。

static项目维护,提供安全保障。

(3)结论三<static对局部变量的影响>

观察一组现象:

static修饰局部变量,改变的是生命周期。

临时变量->全局的生命周期

但在使用的角度,跟全局变量还是存在差别,因为没有改变a的作用域,其作用域只在本代码块内有效!!!

文章来源:https://blog.csdn.net/C_S_D_N______/article/details/135638371
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。