enum 枚举
struct 结构体
union 联合体(公用体)
extern 声明外部符号
register 寄存器
signed 有符号的
unsigned
static 静态的
typedef 类型重命名
void 无类型(函数返回类型)
一.typedef
//typedef 类型定义 把一个复杂的类型简化
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
typedef unsigned int uint; //把unsigned int重新起名为uint
typedef struct node
{
int data;
struct node* next;
}node;
int main()
{
auto int a = 10;
unsigned int num = 0;
uint num2 = 1; //那么uint = unsined int
struct node n;
node n2; //这是简化后的效果,与struct node n2效果相同
return 0;
}
二.static的三个作用
//static
//1.修饰局部变量
//2.修饰全局变量
//3.修饰函数
1.修饰局部变量
void test()
{
static int a = 1; //修饰局部变量,局部变量出了作用域不销毁。
//本质上,static改变了变量的存储位置,从不加时候应该存在的栈区到静态区,影响了变量的生命周期,和程序的生命周期一样
a++;
printf("%d\n", a);//因此,依次输出2~11的整数
}
int main()
{
int i = 0;
while (i < 10)
{
test();
i++;
}
return 0;
}
2.修饰全局变量
static int g_val = 2022;
//static 修饰全局变量的时候,全局变量的外部链接属性就变成了内部链接属性
//其他源文件就不能再使用这个全局变量,使用范围变小了
//仍然储存在静态区
3.static 修饰函数
首先,函数具有外部链接属性
extern int add(int x, int y); //可以调用其它源文件中的函数
static int add(int x, int y)
{
return x + y;
}
//此时add()函数不再具有外部链接属性,为内部链接属性,其它源文件无法使用
三.register
创建寄存器变量
register int num = 3; //建议3存放在寄存中,那么它的访问速度可能会更快