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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。