关键字--C语言本身内置的,非个人创建

break;   //理解为跳出、打断的意思

case;    //理解为”情况“

const;   //常属性 常量的意思

enum;   //枚举

struct;   //结构体

union;   //联合体

extern;   //申明外部符号

go to;   //跳转

register;   //寄存器关键词

signed;   //有符号的

unsigned;   //无符号的

static;    //静态

typedef;   //类型重命名或者类型定义

volatile;   //变量

tips:定义变量时,不能定义为关键字。

同时,变量名必须是字母、数字、下划线组成,变量名不能以数字开头。


典型关键字详解:

typedef--类型定义

#include <stdio.h>  
  
typedef unsigned int uint;   //将unsigned int数据类型命名为uint类型;  
  
int main()  
{  
 unsigned int num = 1;  
 uint num2 = 5;  
 printf("%u %u", num, num2);  // 使用了%u格式符来打印无符号整数  
 return 0;  
}


static

在C语言中,static是用来修饰变量和函数的;

1.修饰局部变量;称为静态局部变量

2.修饰全局变量;称为静态全局变量

3.修饰函数;称为静态函数

1.修饰局部变量: static修饰局部变量的时候,局部变量出了作用域,是不销毁的。所以从本质上来说,static修饰局部变量的时候改变了变量的存放位置。

#include <stdio.h>	

void test()
{
	//static使变量a的存放位置放到了静态区,从而不被销毁
	static int a = 1;    //如果加上static则打印的是2-11,不加static则打印的是2222222222
	a++;
	printf("%d\n", a);
}

void main()
{
	int i = 0;
	while (i < 10)
	{
		test();
		i++;
	}
	return 0;
}

2.修饰全局变量;

static修饰全局变量的时候,此全局变量的外部链接属性就变成了内部链接属性。其他源文件不能再通过extern关键字来引用此静态全局变量。

static int age = 0; //此全局变量变为内部链接属性,不能再被外部源文件引用

3.修饰函数时和修饰全局变量一样,一旦使用static修饰函数,此函数就不再具有外部链接属性,变成了内部链接属性,其他的源文件不能再通过extern来引用此函数


声明外部符号--extern

例:extern int age;   //声明外部变量age,这个age来自另一个文件。


register--申明寄存器变量

此关键字的意义:建议将此关键字申请的变量放在寄存器中,但是不能保证绝对会放到寄存器里面去,只是说优先存放。


#define--定义常量和宏

//define定义标识符常量
#define NUM 100    //定义NUM的值为100;

//define定义宏   (宏是有参数的)
//ADD是宏名,(x,y)是宏的参数;参数是无类型,x+y是宏体
#define ADD(x,y) (x)+(y)  

//申明函数。    可以看出来函数和宏还是有区别的
int Add(int x, int y)
{
	return x + y;
}


int main()
{
	printf("%d\n",NUM);
	int n = NUM;
	printf("%d\n", n);
	int arr[NUM] = { 0 };  //由于define定义的是标识符常量所以可以放在数组长度中

	int a = 10;
	int b = 20;
	int c = ADD(a, b);  //给宏传参数
	printf("%d\n", c);
	return 0;
}