初识常见关键字-c语言

1.c语言提供的,不能自己创建关键字

2.变量名不能是关键字

auto break case char corst continue defult do double else enum extern float goto if

int long register return short signed sizeof static struct switch typdef union unsigned void volatile while

auto 是自动的  每个局部变量都是auto修饰的

int main()
{
       //int char 错误
       {
               auto int a = 10;//自动创建,自动销毁的  自动变量
               //auto 一半省略掉了
               //auto 新的c语言语法中也有其他用法  暂时不考虑
       }
       return 0;
}

extern 是用来申明外部符号的

register 寄存器关键字  

计算机中,数据可以存到哪里呢?

寄存器  更小

高速缓存 几十MB

内存  8G-16G

硬盘 500G  买的

网盘 2T 免费

造价越高,速度越快,空间越小

cpu:中央处理器

int main()
{
       //大量/频繁被使用的数据,想放在寄存器中,提升效率
       register int num = 100;//建议num的值存放在寄存器中
       return 0;
}

signed 有符号的 10  -20

unsigned 无符号的

static 静态的

union 联合体 共用体

void 无 空

define include 不是关键字,是预处理指令

typedef 顾名思义是类型定义,这里应该理解为类型重命名

typedef unsigned int u_int;
//张三-小三
int main()
{
       unsigned int num = 100;
       u_int num2 = 100;
       return 0;
}

static-静态的

1.static修饰局部变量

2.static修饰全局变量

3.static修饰函数

void test()
{
       int a = 1;
       a++;
       printf("%d ", a);//2 2 2 2 2 2 2 2 2 2
}
int main()
{
       int i = 0;
       while (i < 10)
       {
               test();
               i++;
       }
       return 0;
}
void test()
{
       static int a = 1;
       a++;
       printf("%d ", a);//2 3 4 5 6 7 8 9 10 11
}
int main()
{
       int i = 0;
       while (i < 10)
       {
               test();
               i++;
       }
       return 0;
}

第一段代码a在栈区,为局部变量,static修饰后,改变了其存储类型,进入静态区,成为全局变量

static修饰局部变量,改变了局部变量的生命周期(本质上是改变了变量的存储类型)

栈区

局部变量

函数的参数

堆区

动态内存分配

静态区

全局变量

static修饰的静态变量

 

全局变量在整个工程中都可以使用

 

static修饰全局变量使得这个全局变量只能在自己所在的源文件(.c)内部可以使用,其他源文件不能使用

全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性

但是被static修饰后就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量了

 

 

static修饰函数,使得函数只能在自己所在的源文件内部使用,不能在其他源文件内部使用

本质上:static是将函数外部链接属性变成了内部链接属性(和static修饰全局变量一样)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值