C语言特殊关键字的作用及含义(goto,extern,static,const,typedef等)

C语言特殊关键字的作用及含义(goto,extern,static,const,typedef等)

1.goto:无条件跳转语句:

goto 语句可以使程序在没有任何条件的情况下跳转到指定的位置,使用 goto 语句只能 goto 到同一函数内,而不能从一个函数里 goto 到另外一个函数里。不能从一段复杂的执行状态中的位置 goto 到另外一个位置,比如,从多重嵌套的循环判断中跳出去就是不允许的。

#include <stdio.h>
int main() {
    int i = 0;
loop:
    printf("i = %d\n", i);
    i++;
    if (i < 10) {
        goto loop;
    }
    return 0;
}

2.extern:声明变量是在其他文件正声明(也可以看做是引用变量):

extern 用在变量或函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。

//文件1.c代码
#include<stdio.h>
extern void test();   
int main()
{
	show();
}
//文件2.cpp代码
#include<stdio.h>
void test()
{
	printf("hello world");
}

3.register :声明积存器变量:

用 register 声明的变量是寄存器变量,是存放在CPU的寄存器里的。而我们平时声明的变量是存放在内存中的。虽说内存的速度已经很快了,不过跟寄存器比起来还是差得远。
寄存器变量和普通变量比起来速度上的差异很大,毕竟CPU的速度远远大于内存的速度。寄存器有这么两个特点,一个是运算速度快,一个是不能取地址。

4.static :声明静态变量:

static 关键字不仅可以用来修饰变量,还可以用来修饰函数。在使用 static 关键字修饰变量时,我们称此变量为静态变量。静态变量的存储方式与全局变量一样,都是静态存储方式。静态变量属于静态存储方式,属于静态存储方式的变量却不一定就是静态变量。
修饰局部变量时:只改变变量的生命周期,但是不改变作用域。
修饰全局变量时:称为静态全局变量,会改变全局变量的链接属性,从而使得全局变量的作用域变小。这时用extern就会报错。 (修饰函数同理)

5:const :声明只读变量:

const 是 constant 的缩写,意思是“恒定不变的”!它是定义只读变量的关键字,或者说 const 是定义常变量的关键字。

6.typedef :用以给数据类型取别名:

在C语言中,除系统定义的标准类型和用户自定义的结构体、共用体等类型之外,还可以使用类型说明语句 typedef 定义新的类型来代替已有的类型。
例如:typedef int lbw;
之后我们就可以lbw a=1;相当于int a=1;

7.其他不常用的关键字:

(1)auto :声明自动变量 一般不使用
(2)volatile :说明变量在程序执行中可被隐含地改变

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值