const,#define和typedef

1.const 和#define 区别:

    <1> const声明的常量司一阁“run-time”概念,它在程序中存在,并且可以被调用,传递,而#define 常量是一个“compile-time”概念,它的生命在编译器,而在实际程序中,它只是一个常数,一个命令中的常数,没有实际的存在。

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

        
          优缺点:
         
              如果想在程序中向粗鲁的修改常数的值,就得用const,因为#define定义的常量不是实际存在的。
              一般的常数应用,选择#define

              #define Pi 3.1415926
              float angel;
              angel=30*Pi/180;
              
             当程序进行编译的时候,编译器会首先将“#define pi 3.1415926”后面的代码中的"Pi"全部换成“3.1415926”,然后再进行编译。


2.#define和typedef的区别:
    typedef 用来定义一个标识符及关键字的别名,它是语言编译过程的一部分, 但它并不实际分配内存空间

    typedef int INT;
    type int*   pINT;

    typedef 增加了代码的 可读性标识符的灵活性,但是也有“ 非直观性”特点。

    一般情况下,二者功能类似,但是基本遵循#define 定义“可读”的常量以及一些 宏语句的任务,typedef为 标识符或者说是关键字起别名。

    #define 是简单的文本替换。

    typedef (int*)  pINT1;

    #define pINT2  (int *)

    pINT2 a,b  =》 int* a,b;                  pINT1 a,b;    =》 int *a;int *b; 

    显然typedef的最终效果是我们想要的。 所以主张用typedef。












评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值