C语言初学4:C 存储类
2023-12-13 05:53:32
auto 存储类
auto 是所有局部变量默认的存储类,只能用在函数内,在函数开始时被创建,结束时被销毁
#include<stdio.h>
int main(){
/*定义两个具有相同存储类的变量 */
int mouth;
auto int month;
}
register 存储类
意味着变量可能存储在寄存器中,寄存器只用于需要快速访问的变量,比如计数器。
static 存储类
- static 修饰局部变量可以在函数调用之间保持局部变量的值。
- static 修饰全局变量,会使变量的作用域限制在声明它的文件内,变量可以被同一个文件中的任何函数或方法调用。
- static 修饰的变量在程序中只能被初始化一次,即使函数被调用多次,该变量的值也不会重置。
#include <stdio.h>
/* 函数声明 */
void func1(void);
static int count=10; /* 全局变量 - static 是默认的 */
int main()
{
while (count--) {
func1();
}
return 0;
}
void func1(void)
{
/* 'thingy' 是 'func1' 的局部变量 - 只初始化一次
* 每次调用函数 'func1' 'thingy' 值不会被重置。
*/
static int thingy=5;
thingy++;
printf(" thingy 为 %d , count 为 %d\n", thingy, count);
}
thingy 为 6 , count 为 9
thingy 为 7 , count 为 8
thingy 为 8 , count 为 7
thingy 为 9 , count 为 6
thingy 为 10 , count 为 5
thingy 为 11 , count 为 4
thingy 为 12 , count 为 3
thingy 为 13 , count 为 2
thingy 为 14 , count 为 1
thingy 为 15 , count 为 0
?extern 存储类
- 定义在其他文件中声明的全局变量或函数
- 全局变量对所有的程序文件都是可见的
- 通常用于当有两个或多个文件共享相同的全局变量或函数的时候
在同一个项目下有两个源文件
第一个文件:main.c
#include <stdio.h>
int count;
extern void write_extern();
int main()
{
count = 5;
write_extern();
}
第二个文件:support.c
#include<stdio.h>
extern int count;
void write_extern(void){
printf("count is %d",count);
}
执行结果
count is 5
文章来源:https://blog.csdn.net/qq_23440467/article/details/134818943
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!