导航:首页 > 源码编译 > 编译器识别字符是关键字还是变量

编译器识别字符是关键字还是变量

发布时间:2023-01-09 20:53:58

1. 程序语言编译器是怎样被计算机识别的

源代码是由字符组成的吧?
明白这一点就好办了
编译器首先将你写的代码读入内存,然后寻找代码中的关键字、标识符等信息,建立一个所谓的符号表,根据这个符号表对你的源代码进行检查,检查的依据正是该语言的语法和句法规则。比如是否有变量重复定义错误、是否有类型不兼容错误,是否有遗漏语句分隔符错误等等。这些都是比较简单的,例如根据语言的关键字表可以检查是否有非法的关键字(语句分隔符之后的下一个有效字符一定是一个关键字或已定义的标识符,因此很容易识别并挑出其中的关键字进行检查),其它检查也是类似的。
检查没有问题后,编译器开始链接和映射操作(该过程在检查阶段也有使用),将你的源程序翻译成汇编程序或其它中间程序。这一步是最复杂的,因为句法和语法比较简单,但整个程序的逻辑却复杂的多,而且编译器还要负责在不改变代码原意的前提下将代码尽可能地进行优化。
最后就是将生成的汇编代码翻译为机器语言,这一步是最简单的,因为汇编只是将机器语言简单符号化而已,现在的编译理论已经能够确保将汇编代码准确地翻译为机器码了。
以上。

2. C语言的关键字是什么,为什么叫关键字,怎么来的

1.关键字就是C语言编译器识别专用的字符串。
2.因为这些是C里规定死并且比较重要的字符串(key words)所以叫关键字的,好像你名字一样。
3.开发C语言的人定下来的。

补充一下,下次千万别问这种问题啊,就好像你问别人为什么要叫李四一样。

3. 简述C语言中标识符和关键字的概念与区别

标识符是在程序中使用的变量名、函数名、标号等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义。C 规定,标识符只能是字母(A~Z,a~z)、数字(0~9)、下划线()组成的字符串,并且其第一个字符必须是字母或下划线。

在使用标识符时还必须注意以下几点:

(1)标准C不限制标识符的长度,但它受各种版本的C 语言编译系统限制,同时也受到具体机器的限制。例如在某版本C 中规定标识符前八位有效,当两个标识符前八位相同时,则被认为是同一个标识符。

(2)在标识符中,大小写是有区别的。例如BOOK和book 是两个不同的标识符。

(3)标识符虽然可由程序员随意定义,但标识符是用于标识某个量的符号。因此,命名应尽量有相应的意义,以便阅读理解,作到“顾名思义”。

关键字你看一看这一个

4. 操作系统和编译器是怎么识别全局变量和局部

5. C语言关键字是什么

所谓关键字就是已被 C语言编辑工具本身使用, 不能作其它用途使用的字。
auto :声明自动变量 一般不使用
double :声明双精度变量或函数
int: 声明整型变量或函数
struct:声明结构体变量或函数
break:跳出当前循环
else :条件语句否定分支(与 if 连用)
long :声明长整型变量或函数
switch :用于开关语句
case:开关语句分支
enum :声明枚举类型
register:声明积存器变量
typedef:用以给数据类型取别名(当然还有其他作用)
char :声明字符型变量或函数
extern:声明变量是在其他文件正声明(也可以看做是引用变量)
return :子程序返回语句(可以带参数,也看不带参数)
union:声明联合数据类型
const :声明只读变量
float:声明浮点型变量或函数
short :声明短整型变量或函数
unsigned:声明无符号类型变量或函数
continue:结束当前循环,开始下一轮循环
for:一种循环语句(可意会不可言传)
signed:生命有符号类型变量或函数
void :声明函数无返回值或无参数,声明无类型指针(基本上就这三个作用)
default:开关语句中的“其他”分支
goto:无条件跳转语句
sizeof:计算数据类型长度
volatile:说明变量在程序执行中可被隐含地改变
do :循环语句的循环体
while :循环语句的循环条件
static :声明静态变量
if:条件语句

6. 编译器怎么区分标识符和字符

首先要清楚标识符和字符的定义
标识符是程序员自己规定的具有特定含义的单词,比如类名称,属性名称,变量名等。
举例子就是
class
string
字符是指计算机中使用的字母、数字、字和符号
举例子就是
1,2,3,abc
然后要强调,编译器是无法区分标识符和字符的,只有人事先为其规定好规则的情况下,编译器才会按照标识符的方式去读取。打个比方,我规定了class为类标识符,那当我程序里
出现了class
test时,编译器就会认为test是类而不是字符。不知道能不能理解,不过是个好问题

7. 1.C编译程序如何准确识别整型short、int、long和实型float、double、long

编译器根据 short int 这些类型说明符来识别变量是什么,你写的关键字就是让编译器识别数据类型用的。。。准确识别识别是因为变量声明的原因,也是为什么C必须进行变量类型声明。。。
如果呢是只自己如何快速识别变量类型,有一个很特别的命名规则,可以让你一眼看出类型,

比如int型 你可以用 int iNumber; 这样的命名方法,在前面+i来方便你认为他是个整型,不过很多编辑器在你输入变量后鼠标悬停会有类型提示,有点多此一举。。。
你问的问题我没有搞清楚你要问什么,描述不是很清楚。。。

8. 关键字和一般标识符的区别

一、主体不同

1、关键字:属于保留字,是整个语言范围内预先保留的标识符。

2、一般标识符:用户编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的关系。

二、特点不同

1、关键字:不能声明与关键字同名的标识符。

2、一般标识符:由字母和数字以及其它字符构成。


三、规则不同

1、关键字:经过预处理后,关键字从预处理记号(preprocessing-token)中区别出来,剩下的标识符作为记号(token),用于声明对象、函数、类型、命名空间等。

2、一般标识符:长度是由机器上的编译系统决定的,一般的限制为8字符。


9. 请问C语言中的字符哪些可以做为变量,哪些不可以做为变量

1,变量名必须由字母、数字、下划线组成2,首字符不能是数字3,不能太长,具体长度限制由编译器设定,太长会被编译器截取前面的,如果定义的两个变量,在编译器可识别的范围相同,而后面的不同,编译器将视为同一个变量。4,不能是C的保留字,如if,for,main,break不能作为变量名
阅读全文

与编译器识别字符是关键字还是变量相关的资料

热点内容
c语言常用算法pdf 浏览:960
编程如何让画面动起来 浏览:865
大龄女程序员未来发展 浏览:976
数学书籍pdf 浏览:506
加密门禁卡写入成功无法开门 浏览:464
齿轮传动pdf 浏览:52
alpinelinux 浏览:150
手机端app的扫码功能在哪里 浏览:227
少儿编程中小班英语教案 浏览:452
锁屏密码加密手机怎么解除 浏览:205
linuxlostfound 浏览:134
征途服务器ip地址 浏览:330
git提交代码命令行 浏览:165
什么叫浏览器服务器结构 浏览:157
于谦聊天哪个app 浏览:449
小鹏汽车nlp算法工程师薪资 浏览:881
代码加密与隐藏 浏览:649
fordfulkerson算法 浏览:352
京东热app在哪里可以下载 浏览:877
彩报图书app哪个好 浏览:303