当前位置:首页 > 教育培训 >

c语言关键字翻译(c语言关键字中英文翻译器代码)

来源:原点资讯(www.yd166.com)时间:2023-06-20 02:56:08作者:YD166手机阅读>>

在文章 和 中对关键const和static详细讲解,这一节将继续讲解关键字register&extern。通过这篇文章将学会看懂和使用register关键字和extern关键字。

1、register关键字

翻译为“寄存器” 即用它所修饰的变量称之为寄存器变量 作用是让编译器尽可能将变量存在CPU内部寄存器中。使用形式:register 类型 变量名;比如register int a;那么为什么要将量存在CPU内部寄存器中?不是有内存和外存吗?我们知道,计算机中CPU对寄存器、cache、内存、外存访问速度依次为寄存器>cache>内存>外存。当然了,对寄存器的访问速度最快,可不是说我们在编程的时候把每一个变量的修饰符都写为register。原因其一寄存器数量不多,不可能将所有变量都放到CPU内部的寄存器中。原因其二不可能每一个变量都需要CPU快速执行,也就是说事情总是有轻重缓急的,我们一般是把需要CPU快速处理或者频繁访问的变量加上register修饰符,从而缩短CPU从内存抓获取数据的时间,进而提高执行效率。但是加上register修饰符的变量未必都存放在寄存器中,因为寄存器的数量是有限的,修饰符会被编译器忽略,也不会报错。

使用register注意以下几点:

(1)不能用&访问register变量的地址:因为&获取的是内存地址,而register变量保存的是CPU中寄存器中的地址;

(2)只能修饰局部变量,不可修饰全局变量或函数:因为一个变量只能声明一种存储类型

(3)只修饰CPU所能接受的数据类型:因为CPU要直接访问寄存器

c语言关键字翻译,c语言关键字中英文翻译器代码(1)

2、extern关键字

主要作用是可以在当前.c文件中引用别的.c文件中定义的全局变量和非static函数。通常都是在与要引用的.c文件相对应的.h文件中对这些全局变量和函数进行声明,在当前.c文件中直接用#include来包含声明全局变量和函数的头文件这里有几点需要注意。

(1)为什么要在当前.c文件中引用别的.c文件中的内容?原因是:如果你要实现的功能非常简单,在一个.c文件中就可以完成,那么确实不用;如果功能比较复杂,你还要在一个.c中实现所用功能,那只能说太死板了,代码过程不利于阅读代码,也不便于后期维护,在公司实际做项目时经常是团队合作,分模块完成各自的任务,然后再将代码组合到一起。不仅便于阅读代码也便于后期维护强调一点:模块化编程的思想非常重要 就是把一个大的任务按功能分成相应模块 ,然后对每一模块创建.c和.h文件 方便最后整合。

(2)可以引用别的.c文件中定义的全局变量和非static函数?注意一定是全局变量,而不是局部变量,因为局部变量的作用域是代码块,在栈上存储。代码块运行完之后局部变量就没有了。如果这个全局变量不想被修改,也可以加上const关键字进行修饰这里的函数时全局函数,也就是说在这个函数的定义前没有static关键字进行修饰,在前面文章讲到static修饰函数时表明这个函数只能在本文件中被使用,不能再别的文件中使用。

下面用代码来演示extern修饰变量和函数:

1)演示修饰变量

有3个文件:main.c extern.c extern.h main.c文件要访问extern.c文件中定义的全局变量a(通过#include "extern.h"方式),在extern.h中对全局变量a用extern修饰。

main.c代码

#include <stdio.h> #include "extern.h" //演示extern关键字用法 int main(int argc, char** argv) { printf("a = %d \n", a);//访问 extern.c中的全局变量a return 0; }

extern.c代码

int a = 0;//定义全局变量a void fun(void) { int b = 0; }

extern.h代码

#ifndef __EXTERN_H #define __EXTERN_H extern int a; //声明变量a #endif

运行结果:main.c可以访问extern.c中的全局变量a

c语言关键字翻译,c语言关键字中英文翻译器代码(2)

如果extern.h中没有extern int a;main.c还要访问变量a,则会报错,提示a没有定义

c语言关键字翻译,c语言关键字中英文翻译器代码(3)

如果extern.h中没有extern int a;改为extern int a=10;也会出错,显示定义变量a多次:

c语言关键字翻译,c语言关键字中英文翻译器代码(4)

首页 123下一页

栏目热文

c语言难不难学(数据结构c语言版难不难学)

c语言难不难学(数据结构c语言版难不难学)

【CSDN编者按】C语言是不少人的编程入门语言,本文作者惊呼,C语言太难了,要是我能早点知晓这些就好了!于是,他记录了学...

2023-06-20 02:41:54查看全文 >>

c语言中关键字代表什么(c语言关键字及其含义举例)

c语言中关键字代表什么(c语言关键字及其含义举例)

任何事物都需要一个名字,名字在计算机里叫标识符,标识符是有命名规范的:1、标识符由字母(A-Z,a-z)、数字(0-9)...

2023-06-20 02:59:33查看全文 >>

c语言命令大全(c语言指令命令大全)

c语言命令大全(c语言指令命令大全)

C程序的源代码中可包括各种编译指令,这些指令称为预处理命令。虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境...

2023-06-20 02:31:31查看全文 >>

大一c语言容易挂科吗(大一c语言怎么才能不挂科)

大一c语言容易挂科吗(大一c语言怎么才能不挂科)

在大学阶段每学期都是需要进行期末考试,每门专业课的成绩都需要达到及格线以上。如果成绩不合格的话就会被挂科,大学正常的挂科...

2023-06-20 03:03:10查看全文 >>

c语言中的32个关键字通俗含义(c语言关键字详细解释)

c语言中的32个关键字通俗含义(c语言关键字详细解释)

auto 局部变量(自动储存) break无条件退出程序最内层循环 case switch语句中选择项 char单字...

2023-06-20 02:37:56查看全文 >>

c语言中关键字有多少(c语言一共有多少个关键字)

c语言中关键字有多少(c语言一共有多少个关键字)

喜欢的可以收藏转发加关注谈及C语言,我想凡是学过它的朋友都有这样一种感觉,那就是“让我欢喜让我忧。”欢喜的是,C语言功能...

2023-06-20 03:15:38查看全文 >>

c语言中int是什么意思(c语言里面的int是什么意思)

c语言中int是什么意思(c语言里面的int是什么意思)

C语言中有没有见过(int [2]){19,20}或者int (*pt2)[4]的使用方法,字面上可能不好理解,这是C9...

2023-06-20 02:42:30查看全文 >>

c语言关键字37个及其含义(c语言关键字及其含义举例)

c语言关键字37个及其含义(c语言关键字及其含义举例)

这次跟大家分享的,是关于C语言里面常用的16个关键字。通通给你们整理出来了~赶紧拿小本本记下来~!下次发布剩下的~量不在...

2023-06-20 02:44:29查看全文 >>

c语言空字符(c语言怎么使字符串为空)

c语言空字符(c语言怎么使字符串为空)

C语言中是没有字符串这个变量类型的,但是我们可以把字符串存储在char数组中,这个数组的最后一位是字符\0,即空字符,A...

2023-06-20 02:54:43查看全文 >>

c语言关键字指什么(c语言关键字详细解释)

c语言关键字指什么(c语言关键字详细解释)

在C语言中,const是一个关键字,用于声明一个常量。常量是指其值不能被修改的变量。使用const关键字可以提高代码的可...

2023-06-20 03:20:32查看全文 >>

文档排行