Khan's Notebook GCC/GNU/Linux Delphi/Window Java/Anywhere

路漫漫,长修远,我们不能没有钱

c/c++ 常量

我看的书里面,这部分讲得最复杂了 后面是const函数, 临时变量,const指针,因为我是初学c++,有什么不对的地方,请大家指正


#define BUFSIZE 100
这种是早期c中的标准常量定义方式. 基于预处理方式实现,他只做简单的文本替代,没有类型检查的概念,也没有类型检查的功能
BUFSIZE在这里,只存在于预处理期间,大多数情况下,BUFSIZE 的工作方式与普通变量类似,而且没有类型信息, 这样会隐藏一些比较难发现的错误.所以 c++ 用const把值替代进编译器领域来消除这些问题. 则可以这样写 :
const int bufsize=100;

这样就可以在编译时,编译器需要知道这个值的任何地方使用bufsize,同时编译器还支持常量折叠,也就是说编译时可以通过必要的计算把一个复杂的表达式通过缩减简单化.
char buf[bufsize];

使用const时,预处理器会引入错误,所以我们应该完全用const取代#define

posted on 2004-12-13 20:43 Khan 阅读(178) 评论(0)  编辑 收藏 引用 所属分类: GCC/G++


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2007年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

导航

统计

公告

短信大全 for android 1.5
豌豆荚一键安装

现在时刻

IM在线情况:
点击这里给我发消息

常用链接

留言簿(33)

随笔分类(218)

随笔档案(163)

相册

技术

友情链接

最新随笔

搜索

积分与排名

最新随笔

最新评论

阅读排行榜

评论排行榜