C语言中命名常量与符号常量的区别

一楼的可以对具体的操作说的详细点吗?

你说的命名常量和符号常量应该是用const和define宏的意思
const表示常量,它会在数据区开辟一个空间用来存储这个常量,但是这个常量只读,不可写。
用define宏只表示代码代换,在预编译的时候遇到define的时候会把它转换成相应的值,然后再汇编到指令中去,所以用宏一般会把最后处理得到的值会写入指令,用立即数寻址的方式在指令空间里面
这是它们本质上的区别,还有就是其他程序要访问这个常量,const常量要用extern声明,表示这个常量是其他数据空间的,在连接的时候会处理。
如果是宏的话就必须要包含这个宏定义的头文件,这个是在预编译的时候处理的
希望能帮到你
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-16
你说的命名常量和符号常量应该是用const和define宏的意思
const表示常量,它会在数据区开辟一个空间用来存储这个常量,但是这个常量只读,不可写。
用define宏只表示代码代换,在预编译的时候遇到define的时候会把它转换成相应的值,然后再汇编到指令中去,所以用宏一般会把最后处理得到的值会写入指令,用立即数寻址的方式在指令空间里面
这是它们本质上的区别,还有就是其他程序要访问这个常量,const常量要用extern声明,表示这个常量是其他数据空间的,在连接的时候会处理。
如果是宏的话就必须要包含这个宏定义的头文件,这个是在预编译的时候处理的
第2个回答  推荐于2016-04-06
  我们在用C编程时有时需要定义不变的变量,即常量,有两种方法。
  举例说明一下,定义常量PI的两种方式:
  1. #define Pi 3.1415926f;
  2. const float pi 3.1415926f;
  区别:
  第一种方式:是符号常量,将Pi定义成一种符号,此时Pi只是3.1415926的别名,在编译期间用3.1415926去取代Pi的值;
  第二种方式:是命名变量,将PI定义成变量,但告诉编译器它的值是固定不变的,如果在程序中试图去修改它的值,在编译时会报错。
第3个回答  2010-10-25
命名常量:在程序执行的时候分配空间,只是不能改变其值; 若定义:const double pi=3.14;在程序执行的时候这变量pi分配空间,只是不能改变pi的值。
符号常量:在预编译的时候就换成具体的值。 若定义:#define pi 3.14
在预编译的时候就将pi替换成3.14。
相似回答