C语言常用关键字简析

目录

关键字--C语言内置好的东西,用时不能冲突

auto 自动--自动变量

break 停止,中断  --用于循环、switch

continue 继续  --用于循环

case switch  -- switch case

const 常属性

default 默认

do  while  --do while循环

if  else  --if else语句

enum枚举   struct结构体  union联合体,共用体--属于一类

extern用来声明外部符号

float  int   long  short  double  char  --类型

for 循环

goto 跳转

register 寄存器 

return 返回

signed 有符号  unsigned 无符号

sizeof 计算所占内存空间大小

static 静态

修饰局部变量

修饰全局变量

修饰函数

typedef 类型定义,类型重定义

void 空,无

volatile 易变的Linux

define 定义常量和宏


关键字--C语言内置好的东西,用时不能冲突

auto 自动--自动变量

int main()
{
    int a=10;//a为局部变量,自动创建,自动销毁,也叫自动变量
    //本质上是auto int a=10,通常省略
    return 0;
}

break 停止,中断  --用于循环、switch

continue 继续  --用于循环

case switch  -- switch case

const 常属性

default 默认

do  while  --do while循环

if  else  --if else语句

enum枚举   struct结构体  union联合体,共用体--属于一类

extern用来声明外部符号

常用于链接源文件中不同项目之间的符号

int g_val=2021;
extern int g_val;

 同一源文件下不同的项目之间,引用外部变量

float  int   long  short  double  char  --类型

for 循环

goto 跳转

register 寄存器 

也是一种存储空间,在电脑上一般集成到CPU上,所以和内存是不同的独立存储空间

越往上存储空间越小,读写速度越快,技术实现越难

中央处理器CPU负责处理运算,运算数据来自于内存。后来CPU处理速度加快,内存读写速度跟不上,在内存上放一块cache、寄存器以提高内存处理速度。

register int num=100;
//&num取地址的操作是错的,取的是内存的地址,这里num在寄存器,所以操作错误

仅仅起到建议放到寄存器的作用,到底放不放由编译器决定

return 返回

signed 有符号  unsigned 无符号

sizeof 计算所占内存空间大小

static 静态

修饰局部变量

void test()
{
     int a=1;//a为局部变量,出了这个大括号就失效
     a++;
     printf("%d",a);//生命周期结束
}
int i=0;
while(i<10)
{
     test();
     i++;
}
void test()
{
     static int a=1;//static修饰局部变量,改变了变量的生命周期
     //但是作用域没变,a仍然是局部变量
     a++;
     printf("%d",a);//a++出去后不销毁,下次进来继续做运算
}
int i=0;
while(i<10)
{
     test();
     i++;
}

 运行结果为2 3 4 5 6 7 8 9 10 11

修饰全局变量

static int g_val=2021;//修饰全局变量
extern int g_val;

上述两段为同一源文件下的不同项目

默认一个全局变量具有【外部】链接属性,而如果全局变量被static修饰使得全局变量的外部链接属性变成了内部链接属性,此时的全局变量只能在本源文件本项目内使用,其他源文件或项目即使声明也无法链接到、无法使用。

即如果某个变量不想被别人看到,可以用static修饰。

修饰函数

int Add(int x,int y)
{
    return x+y;
}
int main()
{
   int a=10;
   int b=20;
   int c=Add(a,b);
   printf("%d\n",c);

   return 0;
}

 上述两段为同一项目下的不同源文件,会显示警报

extern int Add(int x,int y);//声明函数

int main()
{
   int a=10;
   int b=20;
   int c=Add(a,b);
   printf("%d\n",c);

   return 0;
}

此时不会显示警报

static int Add(int x,int y)
{
    return x+y;
}

 用static修饰函数后,另一源文件中使用extern无法有效引用

函数是具有外部链接属性的,如果被static修饰,则变为内部连接属性,此时函数只能在自己的源文件内部,不能在其他源文件内部使用

typedef 类型定义,类型重定义

unsigned int num=100;
typedef unsigned int uint;

给unsigned int重新定义为uint ,把已有的类型重新起了个名字

void 空,无

volatile 易变的Linux

define 定义常量和宏

#define NUM 100//define定义常量
#define MAX(X,Y)  (X>Y?X:Y)//define定义宏
int main()
{
   int a=10;
   int b=20;
   int c=MAX(a,b);
   printf("%d\n",c);
   return 0;
}

int c=MAX(a+2,b);//在运行时会被替换成c=(a+2>b?a+2:b);

宏的工作原理是替换,与函数类似但有不同

希望大家多多批评指正!

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值