Chinaunix首页 | 论坛 | 博客
  • 博客访问: 356411
  • 博文数量: 78
  • 博客积分: 2222
  • 博客等级: 大尉
  • 技术积分: 745
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-24 10:48
文章分类

全部博文(78)

文章存档

2012年(7)

2011年(33)

2010年(38)

分类: C/C++

2011-09-14 20:35:04

const的用法
  1、C程序中的作用
    定义常量、修饰函数参数、修饰函数返回值

   2、C++程序中特有的作用
        修饰函数的定义体;定义类中某个成员函数为恒态函数即不可改变类中的数据成员;

const和define的区别
  C++constdefine都可以定义常量,但是const有更多优点
   (1)const常量有数据类型,而宏常量没有,编译器可以对const常量进行类型安全检查,而后者只进行字符替换没有安全检查,可能生意料不到的错误(边际效应)
  2)有些集成化的调试工具可以对const常量进行调试,但是不能对宏常量进行调试,c++中使用const常量而不是宏常量,即const常量完全取代宏常量。
  (3)const与#define最大的差别在于:
           前者在堆栈分配了空间,而后者只是把具体数值直接传递到目标变量罢了。或者说,const的常量是一个Run-Time的概念,他在程序中确确实实的存在并可以被调用、传递。而#define常量则是一个Compile-Time概念,它的生命周期止于编译期:在实际程序中他只是一个常数、一个命令中的参数,没有实际的存在。 

const常量存在于程序的数据段,#define常量存在于程序的代码段。

阅读(1439) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~