CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

c语言中宏定义和定义一个数组常量有什么不同?

楼主ttng(棒棒唐)2003-06-03 13:51:02 在 C/C++ / 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

相关问题

  • 关于字符串常量数组
  • 如何定义数组常量?
  • 关于数组,要求常量?
  • 如何定义常量数组
  • 怎么理解“数组名是一个数组首地址的常量指针”?
  • c++中怎么用宏定义字符数组?急
  • c++中怎么用宏定义字符数组?急
  • 请教关于常量与数组的问题
  • 如何在DELPHI中申明全局常量数组
  • 很简单,如何在初始化类中的常量数组?

关键词

  • 内存
  • 定义
  • 常量
  • 内存空间
  • 变量
  • 占用
  • const
  • 使用
  • define

得分解答快速导航

  • 帖主:ttng
  • bitipierce
  • pzytony
  • liu_feng_fly
  • steedhorse
  • shupianbird

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo