2.常见的关键字

1.typedef

语法

        : typedef <原本数据类型的名字> <新数据类型的名字>;

2.static

作用

        : 直接修饰 "变量" 和 "函数"

内存分为 :
"栈区"局部变量的存放地方 (进去创建,出来销毁)
"堆区" 
"静态区"静态变量 (生命周期变成 进入作用域创建 出作用域不销毁,程序销毁时才销毁)

用法①

                :static 修饰的局部变量进入静态区,生命周期变成程序的生命周期

用法②

                :static 修饰全局变量, 会将"外部链接属性",变成了"内部链接属性"

               

                (使全局变量的作用范围由该程序,变成该文件)
                原本可以在需要使用的文件中 "extern"一个变量, 然后即可使用

                后变成只能在该程序的该文件中使用 --  内部链接属性

//test1.c        //同程序的一个文件
int Add(int x, int y)
{
	return x + y;
}

//test2.c        //同程序的另一个文件

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	extern  int Add(int x, int y);    //在需要的文件中,声明全局函数
	int c = Add(1, 2);
	printf("%d", c);
	return 0;
}
static int Add(int x, int y)
{
	return x + y;
}
//此时另一个文件即报错
严重性	代码	说明	项目	文件	行	禁止显示状态
错误	LNK2019	无法解析的外部符号 "int __cdecl Add(int,int)" (?Add@@YAHHH@Z),函数 _main 中引用了该符号	Project1	E:\code\c语言学习\Project1\test2.obj	1	

3.register -- 寄存

寄存器(集成到CPU上)    快    空间小造价高    CPU直接用
高速缓存(cache)              |                            
内存                                 |                    
硬盘                                慢    空间大造价低    从下往上传

        用处

:现代编译器一般会根据优化算法自动选择是否将变量存储在寄存器中,所以在大多数情 况下,手动使用 "register" 关键字并不会对程序的性能产生明显影响,并且有些编译器甚至忽略这个关键字

        register总结

                : 没什么用了(

4.#define --- 定义标识符常量和宏

       在预处理左右细讲一下这个

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值