1.typedef
只对类型进行重命名
unsigned 无符号整型(自然数)
# define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
typedef unsigned int uint;
// 给unsigned int 这个操作起一个简单的名字 uint 之后就可以用简名操作
int main()
{
uint a=0;
scanf("%d", &a);
printf("a=%d\n",a);
return 0;
}
若改为
uint a=-1;
则会报错
2.static
修饰局部变量
# define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void test() // void 定义的函数,不返回值
{
int a = 1;
a++;
printf("%d", a);
}
int main()
{
int i = 0;
while (i < 10)
{
test();
i++;
}
return 0;
}
首先判断其代码输出结果:
2222222222
每次进入test函数中,a都重新创建
如果用static修饰
# define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
void test()
{
static int a = 1;
a++;
printf("%d", a);
}
int main()
{
int i = 0;
while (i < 10)
{
test();
i++;
}
return 0;
}
输出结果为:
234567891011
此时static将a修饰为全局变量,出了作用域时,a的值也不销毁,依次累加
实质:
改变其变量的位置,把栈区的局部变量放在静态区的静态变量
修饰全局变量
全局变量具有外部链接属性
extern修饰其全局变量
如果再用static修饰其全局变量,则外部链接属性,变为内部链接属性,其他源文件无法使用其全局变量
修饰函数
和修饰全局变量的用法一样,static修饰之后,作用域也是变小了
3 register
寄存器关键字
4.define
定义 常量 和 宏
常量:
# define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
# define NUM 100
int main()
{
printf("%d",NUM);
// 100
return 0;
}
宏:
# define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
# define ADD(x,y) x+y
int main()
{
int x = 10, y = 20;
printf("%d", ADD(x, y));
// 30
return 0;
}
新手小白,有何不妥,请您提出,还需努力!!!
👍+✏️+⭐️ 是对博主最大的鼓励与支持!!!