zoukankan      html  css  js  c++  java
  • typedef 和 define的区别

     都知道两个在某些情况下是相同的

     但是define是在预编译时就会处理掉,进行简单的宏替换,不管正不正确都替换掉,末尾没有分号,有分号连分号也一起替换了。

    而typedef则是在已经定义的类型中进行别名的定义,他在预编译时处理。

    typedef有作用域,define只要是在定义之后,均可以使用 

    typedef不仅可以定义系统自带的类型,还可以定义用户自定义的类型结构,define的用途在于定义类型取别名,还可以定义常量、变量、编译开关
    经典问题:
    typedef int * pint ;
    #define PINT int*
    const pint p ;//p不可更改,但p指向的内容可更改
    const PINT p ;//p可更改,但是p指向的内容不可更改。

    pint是一种指针类型 const pint p 就是把指针给锁住了 p不可更改
    而const PINT p 锁的是指针p所指的对象。
    
    
    更加详细请参考:http://www.cnblogs.com/kerwinshaw/archive/2009/02/02/1382428.html
    
    
  • 相关阅读:
    Mac安装zookeeper
    征途
    vue-配置文件
    数组去重
    判断身份证
    判断邮箱
    判断手机号是否正确
    JS 时间格式转换
    打印 print-js
    自"愚"自乐的云服务器
  • 原文地址:https://www.cnblogs.com/leisc/p/3836443.html
Copyright © 2011-2022 走看看