c语言-static

static作用:修饰变量和函数

修饰局部变量-静态局部变量

static未修饰局部变量

#include <stdio.h>

void print()
{
	int a = 0;
	a++;
	printf("%d ", a);
}

int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		print();
	}
	return 0;
}

运行结果
在这里插入图片描述
static修饰局部变量

#include <stdio.h>

void print()
{
	static int a = 0;
	a++;
	printf("%d ", a);
}

int main()
{
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		print();
	}
	return 0;
}

运行结果
在这里插入图片描述
原因分析:
static修饰局部变量的时候,局部变量出了作用域,不销毁,本质上static修饰局部变量的时候,改变了变量存储的位置,进而使变量的生命周期变长,与程序的生命周期一致
在这里插入图片描述

修饰全局变量-静态全局变量

static未修饰全局变量
test.c中代码

#include <stdio.h>

extern int global_tmp;

int main()
{
	printf("%d", global_tmp);
	return 0;
}

tmp.c中

int global_tmp = 100;

运行结果
在这里插入图片描述
static修饰全局变量
报错
在这里插入图片描述
原因分析:

全局变量具有外部链接属性,当static修饰全局变量,全局变量的外部链接属性变成了内部链接属性,其他源文件(.c)文件就不能使用这个全局变量

修饰函数-静态函数

static未修饰函数
test.c代码

#include <stdio.h>

extern int Add(int x, int y);

int main()
{

	printf("%d", Add(1, 1));
	return 0;
}

tmp.c代码

int Add(int x, int y)
{
	return x + y;
}

运行结果
在这里插入图片描述
static修饰函数
在这里插入图片描述
原因分析
函数是具有外部链接属性,但是被static修饰的时候,外部链接属性变为内部链接属性,其他源文件(.c)文件就不能使用这个函数

相关推荐

  1. C语言中的static关键字

    2024-04-01 19:36:03       45 阅读
  2. C语言中的static关键字

    2024-04-01 19:36:03       33 阅读
  3. 漫谈:C语言 C++ static究竟是什么

    2024-04-01 19:36:03       144 阅读
  4. C语言——static的三大用法

    2024-04-01 19:36:03       55 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-01 19:36:03       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-01 19:36:03       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-01 19:36:03       87 阅读
  4. Python语言-面向对象

    2024-04-01 19:36:03       96 阅读

热门阅读

  1. 元胞自动机(matlab)

    2024-04-01 19:36:03       34 阅读
  2. 天猫超级会员怎么升级

    2024-04-01 19:36:03       51 阅读
  3. 字符串优化&&单例模式(C++基础)

    2024-04-01 19:36:03       35 阅读
  4. 什么是缓存击穿、缓存穿透、缓存雪崩?

    2024-04-01 19:36:03       38 阅读
  5. 【pytest】pytest` 中几种常用的参数化方法

    2024-04-01 19:36:03       43 阅读
  6. 2024年3月29日西山居游戏运维开发面经

    2024-04-01 19:36:03       44 阅读
  7. tcpdump 抓包

    2024-04-01 19:36:03       41 阅读
  8. 每日一题 2580统计将重叠区间合并成组的方案数

    2024-04-01 19:36:03       38 阅读
  9. 力扣top100-两数之和

    2024-04-01 19:36:03       41 阅读
  10. Web 应用基础 - ServletContext:获取与应用

    2024-04-01 19:36:03       43 阅读