使用符号常量有何好处

作者&投稿:昌古 (若有异议请与网页底部的电邮联系)
什么是符号常量?使用符号常量有什么好处?~

符号常量就是用define定义的常量,比如define a =1;
你以后就可以把a当1用,程序里只要有1的地方你都写成a,这样当你想让所有是1的地方都变成2 只需重新给a赋值。达到一改全改的目的。

在C++中程序直接使用文字常量相比,使用符号常量有什么好处?
文字常量有时候可能比较长,而且文字常量可能写的过程中会写错
符号常量定义之后加上const如果在哪个地方有改会报错的.
还有如果多个地方用到相同的文字常量,你写了文字常量之后,如果想改的话要改很多地方.符号常量只要改一个地方就好了,方便代码的维护

两个主要的好处:

(1) 从所起的符号名字中可以清楚地看出该常量的含义,从而做到“见名知意”,避免“幻数”。比如上述程序中阅读此程序的人很容易的由符号名PI知道这个常量的含义就是圆周率。当然要想达到这样的效果,前提是所起符号名称必须和实际含义相符合。因为符号是可以任意命名的,你完全可以用这样的#define命令 #define PRICE 3.14159来定义一个符号PRICE代替3.14159,但是这样作就失去符号常量的存在意义了。

(2) 在需要修改常量的值时可以做到“一改全改”,减少工作量。如果一个常量的值发生了变化,如果原来是用直接常量实现的,那么很显然程序的修改工作量就很大,尤其是当这个常量出现次数很多的时候。但是,如果用符号常量来实现的话,那么只需要改动一个地方,就是#define命令这个地方,而程序其它部分完全不需改动,因为在进行预编译时新的常量值会被正确的替换进去。

4.8 符号定义语句
在程序中,我们经常要使用一些常量或数值表达式,并把它们直接写在指令中,但当需要修改时,就要对它们逐个进行修改,这无疑会增加维护程序的工作量,而且每个常量或表达式所代表的含义也容易遗忘。

为了改善程序的可读性,尽量减少维护程序的工作量,汇编语言提供了为常量或表达式定义一个符号名的方法。一旦定义了符号名,在指令中就可直接使用它们。

4.8.1 等价语句
1、一般格式

等价语句的一般使用格式如下:

符号名 EQU 表达式

作用是左边的符号名代表右边的表达式。

注意:等价语句不会给符号名分配存储空间,符号名不能与其它符号同名,也不能被重新定义。

2、用符号名代表常量或表达式

当把一个常量或表达式定义成一个具有一定含义的符号名后,在程序中就可以用该符号名来代表该常量或表达式。

例如:

NUMBER EQU 100 ;给缓冲区的长度取一个符号名
BUFF_LEN EQU NUMBER+2
CR EQU 13 ;给“回车”符的ASCII码定义一个符号名
LF EQU 10 ;给“换行”符的ASCII码定义一个符号名

BUFFER DB NUMBER, ?, NUMBER DUP (?) ;用符号名来定义缓冲区


3、用符号名代表字符串

用一个具有一定含义的符号名定义某一个较长的字符串,在随后的程序中就用该符号名。例如:

GREETING EQU "How are you!"

在该定义之后,就可使用符号名GREETING来代表字符串"How are you!"。

4、用符号名关键字或指令助忆符

用一个(组)程序员自己习惯的符号名来代替汇编语言中的关键字或指令助忆符。但在此建议不要这样做,因为程序的编写者习惯,程序的其他阅读者可能会觉得很别扭。

例如:

MOVE EQU MOV ;给指令MOV取另一个符号名MOVE
COUNTER EQU CX ;给寄存器CX取一个叫“计数器”的符号名

上面的定义只是给原来的助忆符MOV和CX起了另一个别名,而原来助忆符MOV和CX仍然可以使用,所以,我们可编写如下语句:

MOVE AX, CX ;相当于指令:MOV AX, CX
MOV COUNTER, BX ;相当于指令:MOV CX, BX

5、用符号名定义存储单元的别名

可对一片存储单元定义另一个数据类型的符号名,有关叙述参见前面的操作符THIS。

例如:

WORD1 EQU THIS WORD ;给后面的字节存储单元取一个字属性的符号名
BYTE1 DB 12h, 21h
FLAG DW 1234H
FLAG1 EQU byte ptr FLAG ;给FLAG的低字节取一个字节属性的符号名
FLAG2 EQU byte ptr FLAG+1 ;给FLAG的高字节取一个字节属性的符号名

有了上述定义后,可编写如下语句:

MOV AX, WORD1 ;执行后,(AX)=2112H
MOV BL, FLAG1 ;执行后,(BL)=34H

主要有以下几个方面的好处
1 一般对符号常量的命名是“见名知意”,你可以根据其名字直接知道它的实际意义的
2 符号常量一旦被附值以后是不能再重新被附值的,可以避免在后面的编程中产生错误
3 由于使用了符号常量来代替数值,可以只该符号常量的附值就可实现全部数值的变更


在C++中程序直接使用文字常量相比,使用符号常量有什么好处?
使用符号常量有什么好处?文字常量有时候可能比较长,而且文字常量可能写的过程中会写错 符号常量定义之后加上const如果在哪个地方有改会报错的.还有如果多个地方用到相同的文字常量,你写了文字常量之后,如果想改的话要改很多地方.符号常量只要改一个地方就好了,方便代码的维护 ...

定义符号常量ABC代表字符串“123456”的命令是什么?
在C语言中,定义符号常量需要使用`#define`预处理指令。要将字符串“123456”定义为符号常量ABC,可以使用以下命令:这样,之后在代码中可以直接使用ABC来表示字符串“123456”,例如:使用符号常量可以使代码更加易读和易维护,同时方便在多处使用相同的字符串而不需要多次写出字符串本身。

符号常量与变量到底有什么区别?
符号常量与变量区别为:定义不同、寻址不同、声明不同。一、定义不同 1、符号常量:符号常量在使用之前必须先定义,编译后写在代码区。2、变量:变量在使用之前不必先定义,编译后写在执行区。二、寻址不同 1、符号常量:符号常量不可寻址,没有存储空间。2、变量:变量可寻址,有存储空间。三、声明...

符号常量和常变量的相同点
都具有变量的基本属性。符号常量在程序中是有名字的不变量,而常量是没有名字的不变量。常变量是有名字的不变量,与常量相比,常变量具有符号常量的优点且使用更方便。常变量和符号常量都不允许改变其值的大小,同时它们都要占用存储单元,并有变量值。

字符常量和符号常量有什么区别?字符常量在编程中有什么用?
字符常量和符号常量的区别:一个常量即可以直接用字面形式表示(称为直接常量, 如124,156.8),也可以用一个标识符来代表一个常量,称为"符号常量"。但符号常量必须在程序中的说明部分定义,也就是说先定义,后使用。 字符常量是由单个字符组成,所有字符来自ASCII字符集,共有256个字符。在程序中,...

VB直接常量
别搞得那么复杂,常量就是数值或字符串,如123或abc。你可以:print 123 print "abc"常量可以用一个符号来代替,这需要定义常量。用符号来代替常量的好处是便于理解。符号常量分为系统定义的常量,自定义的常量。如系统定义vbred来代替255,你可以知道在用颜色时255代表的是红色,你只要记住vbred是红色...

C语言中变量与常量的概念是什么?
它的值在其作用域内不能改变,也不能再被赋值。· 使用符号常量的好处是:含义清楚;能做到“一改全改”。2、其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元。变量定义必须放在变量使用之前。一般放在函数体的开头部分。要区分变量名和变量值是两个不同的概念。

C语言符号常量定义
枚举类型中的元素也是符号常量,如:enum Weekday{SUN, MON, TUES, WED, THU, FRI, SAT}。例:include<stdio.h>#define PRICE 30main(){ int num,total; num=10; total=num* PRICE; printf(“total=%d”,total);}使用符号常量的好处是:含义清楚;能做到“一改全改”...

在vb中,符号常量和变量有什么区别?什么情况下宜用符号常量?为什么?
符号常量是用来容易修改的目的,就是说先定义(比如 PI=3.14),然后就使用PI来代表3.14,假如你在该题目中使用了数百个PI,如果你要修改,不为3.14了,而是为3.1416,就只要令第一个PI=3.1416就可以了,就达到了目的,而不用一次一次的去改 ...

...有了常变量就可以不必多用符号常量,我感觉他俩差不多啊
这是两个不同的概念,普通常量例如数字,字母等有有自己独立的属性如:占内存位数等;而符号常量是c语言对普通常量的补充可以提高c程序的可读性和方便修改。

吉木乃县15256692470: 使用符号常量有何好处 -
歧迫诺尔: 4.8 符号定义语句 在程序中,我们经常要使用一些常量或数值表达式,并把它们直接写在指令中,但当需要修改时,就要对它们逐个进行修改,这无疑会增加维护程序的工作量,而且每个常量或表达式所代表的含义也容易遗忘. 为了改善程序的...

吉木乃县15256692470: 符号常量 - 搜狗百科
歧迫诺尔:[答案] 符号常量就是用被定义的常量,比如define a =1;你以后就可以把a当1用,程序里只要有1的地方你都写成a,这样当你想所有是1的地方都变成2 只需给a赋值2,达到一改全改的目的.变量可以在程序中改变其值,而常量不行.

吉木乃县15256692470: c#程序中使用符号常量的好处 -
歧迫诺尔: 含义清楚,前提是你得给他起个直观的名字 定义处改动,所有使用处同步改动. 第2条的引申:程序易于维护、降低低级错误几率等等一大堆

吉木乃县15256692470: 应用符号常量定义数组的行和列有何好处? -
歧迫诺尔: 容易修改行列数,并处理里面的元素 这就像用常量表示一个数字是一样的,如果常量表示数字要变化了,只要修改常量后面的数字就可以了 而不需要到程序中改正很多的这个数字 而 应用符号常量定义数组的行和列,就可以使用符号常量来限制数组的范围,而不是具体数字.

吉木乃县15256692470: 字符常量有什么用? -
歧迫诺尔: 首先我想说的是,这些东西只是存在书本中的一些定义,你不用太在意这些字眼,只要了解C/C++的实质就行了.至于那些咬文嚼字的东西就可以放一边了. 接下在说说你的问题 ..... 所谓的常量,与变量不同,它就是不会变的量.比如:const ...

吉木乃县15256692470: C语言中字符常量有什么用? -
歧迫诺尔: 字符常量:在C语言中一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量.大小写字母代表不同的字常量;单引号中的空格也是;字符常量只能包含一个字符;字符常量只能用但括号括起来.比如是常用字符的ACII 'a' 97 'A' 65 常量一般指随时拿过来就可以用的,并且是不会变的.在程序中,比如char c = 'Y'; c是字符型变量,'Y'是字符常量.可以赋值.

吉木乃县15256692470: 什么是符号常量?使用符号常量有什么好处? -
歧迫诺尔: 符号常量就是用define定义的常量,比如define a =1; 你以后就可以把a当1用,程序里只要有1的地方你都写成a,这样当你想让所有是1的地方都变成2 只需重新给a赋值.达到一改全改的目的.

吉木乃县15256692470: C++中把一个值定义为符号常量后有什么用 -
歧迫诺尔: 在文件或者输入界面中保存的一般都是字符常量,定义为符号常量,可能是方便对比,输入是否符合程序执行要求

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网