C语言关键字,重点static,define,定义宏

关键字

1.typedef

typedef理解为重命名

typedef unsigned int uint_32

int main()
{
	unsigned int num1=0;
	uint_32 num2=0;
	return 0;
	//num1和num2的类型是一样的
}

2.static

static是用来修饰变量和函数的
修饰局部变量-静态局部变量
2.修饰全局变量-静态全局变量
3.修饰函数-静态函数

static改变了变量的存储区间

1.修饰布局变量
static修饰局部变量,第一次执行初始化,出函数后没有销毁,以后不再执行初始化

viod test()
{	
	int i=0;
	i++;
	printf("%d ",i);
}

int main()
{
	int i=0;
	while(i<10)
	{
		test();
	} 
	return 0;
}
//打印10个1;
//-----------------------------------------------
viod test()
{	
	static int i=0;
	i++;
	printf("%d ",i);
}

int main()
{
	int i=0;
	while(i<10)
	{
		test();
	} 
	return 0;
}
//打印1-10

2.修饰全部变量
在这里插入图片描述
在一个工程下,一个.c文件里的全部变量在另一个.c文件里依旧可以用(用一个entern声明一下是外部的)
在这里插入图片描述
变量加了static后就不可以用了
因为static修饰使得这个全局变量只能在自己所在的源文件内部使用,其他文件不能使用
全局变量可以在其他源文件内使用是因为全部变量具有外部链接属性,但是被static修饰后就变成了内部链接属性,其他的源文件就不能链接到这个静态的全局变量
3.修饰函数
在这里插入图片描述在这里插入图片描述
同上文的修饰全局变量一样,static将函数的外部链接属性改为内部链接属性使得外部的源文件无法使用

define

1.define定义常量

#define MAX 1000

2.定义宏

#define ADD(x,y) x+y
#include "stdio.h"
int main()
{
	int sum1 = ADD(2,3);
	int sum2 = 2 * ADD(2,3);
	printf("%d %d",sum1,sum2);
	return 0;
}
//sum1 = 5; sum2 = 7

因为定义宏也相当于是起了个别名;2*ADD(2,3)就相当于2 * x + y

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值