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

路漫漫,长修远,我们不能没有钱
随笔 - 172, 文章 - 0, 评论 - 257, 引用 - 0
数据加载中……

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 阅读(387) 评论(0)  编辑 收藏 引用 所属分类: GCC/G++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理