C/C++中的typedef 和 #define

typedef

C/C++中的关键字typedef允许用户为类型名来起一个新名字,通常会是缩写或者能够清晰表明类型含义的新名字。

例:

typedef unsigned int UINT;
UINT 100;

值得注意的是,typedef除了为C/C++内置的数据类型取别名之外,也可以为用户的自定义类型(class / struct)取别名。

例:

typedef Student{string name;int id;...
}STU;STU student;

缩写例:

typedef iterator_traits<I>::iterator_category caty;

#define

#define 是 C 指令,用于为各种数据类型定义别名,与 typedef 类似,但是它们有以下几点不同:

  1. typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名。

    常见的有:

    #define PI 3.14
    
  2. typedef 是由编译器执行解释的,#define 语句是由预编译器进行处理的。

Ref:https://www.runoob.com/cprogramming/c-typedef.html

C/C++中的typedef 和 #define相关推荐

  1. 浅谈C/C++中的typedef和#define

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

  2. C++中typedef和define的区别

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

  3. typedef VS #define —— C语言中的 关键字 与 C指令

    *******************************************typedef************************************************** ...

  4. typedef和define具体的详细区别

    1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错.例如: #define PI 3.141 ...

  5. c语言错误c4430,C 语言 typedef 与 #define 比较

    Alvin typedef 与 #define 的区别 1. 执行时间不同 关键字 typedef 在编译阶段有效,由于是在编译阶段,因此 typedef 有类型检查的功能. #define 则是宏定 ...

  6. typedef和define一些问题

    1. 四个用途 用途一: 定义一种类型的别名,而不只是简单的宏替换.可以用作同时声明指针型的多个对象.比如: char* pa, pb; // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针 ...

  7. typedef 与 define

    一.typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像: typedef    int       ...

  8. typedef和#define的用法与区别

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

  9. 【C++ grammar】常量、指针、Usage of using, typedef, and #define

    目录 1.常量 (Constant) 2.指针(Pointer) 3.Usage of using, typedef, and #define 1.常量 (Constant) 常量是程序中一块数据,这 ...

最新文章

  1. SpringMVC+MyBatis 事务管理一
  2. 川崎焊接机器人编程实例_机器人现场编程-川崎机器人示教-综合命令.pptx
  3. 江西省能源局发布第一、二批省级光伏度电补贴目录
  4. (转)Apache与Tomcat 区别联系
  5. MySQl求奇数和函数_收集的48个Shell脚本小技巧
  6. android手机 scala环境,在Android中使用Scala中的Java常量
  7. OpenCV稀疏矩阵SparseMat
  8. 5G 基站功耗,到底有多可怕?
  9. 代码查看工具_不好用打我 | 六个前端开发在线工具推荐
  10. String类基础的那些事!
  11. 【Django 2021年最新版教程12】GET POST请求参数 如何接收、判空、默认值
  12. easyMule自动关机工具(可用于1.X和2.0版本)
  13. Buck电源设计和电感电容参数介绍
  14. 数据库实验报告一-创建数据库和表
  15. synchronized原理
  16. BLE安全之SM剖析(3)
  17. Spark创建hive表报错 ROW FORMAT DELIMITED is only compatible with ‘textfile‘, not ‘orc‘
  18. “攻城狮” 需要了解的密码知识
  19. [java 新手练习1]5x5横排竖排方阵代码(java)
  20. 数学与计算机科学虎扑,北大数学系在国内是最顶级存在吗?

热门文章

  1. TortoiseGit 本地仓库和远程仓库建立联系_入门试炼_02
  2. Ant Design Vue list表格组件
  3. 软件设计师 - 常用公式
  4. linux十字符木马,Linux系统随机10字符病毒的清除
  5. 记录——oracle数据库备份
  6. linux 网络dma驱动,S3C2410的Linux下DMA驱动程序开发
  7. 记录qt窗口在拖动过程中出现的问题
  8. Qt下继承于QObject创建的线程
  9. python获取shell输出及返回码_如何执行shell命令获取Python中命令后的输出和pwd
  10. 高压特种作业考试易错总结