c语言中宏定义和定义一个数组常量有什么不同?
如题。 问题点数:40、回复次数:9Top
1 楼bitipierce(多看问题少回答)回复于 2003-06-03 13:54:06 得分 5
宏定义只是在编译的时候做简单的字符替换!不分配内存空间
而常量是要分配内存空间的!并且还有数据类型!Top
2 楼preetyboy(无情雨)回复于 2003-06-03 13:58:12 得分 0
不知道Top
3 楼pzytony(507)回复于 2003-06-03 14:33:15 得分 11
const定义时,c会立即检查const的语法错误
#define 有自己的语法,知道使用时宏才会检查。
建议定义一般常量时,使用const,可避免错误
const double PI = 3.1415926;
不要用 #define PI 3.1415926
Top
4 楼bitipierce(多看问题少回答)回复于 2003-06-03 15:55:02 得分 0
define和const都要掌握,他们各有各的优缺点!Top
5 楼liu_feng_fly(笑看风云 搏击苍穹 衔日月)回复于 2003-06-03 16:04:44 得分 11
宏不安全,不进行编译期间的检查,已经不推荐使用了,应该使用const的方式Top
6 楼steedhorse(晨星)回复于 2003-06-03 16:24:41 得分 10
const变量也未必占用内存空间,这要看编译器的优化程度。
但const是类型安全的。Top
7 楼locky1982(无情浪子)回复于 2003-06-06 07:48:38 得分 0
steedhorse(晨星) 说的对Top
8 楼ttng(棒棒唐)回复于 2003-06-07 19:12:34 得分 0
to:晨星
const变量未必占用内存空间????
如果是全局变量内存自然要分配空间,局部变量也要在任务堆栈中分配。
不占用内存空间指的是什么情况?Top
9 楼shupianbird(birdsun)回复于 2003-06-07 19:18:28 得分 3
对于const的定义编译器一半会直接展开所以不占空间Top




