• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

关于C语言中的typedef 和define问题

Wyatt0007 2019-01-28 浏览量:910
程序中typedef unsigned char  UINT8和#define UINT8 unsigned char有什么特殊区别吗?不可以用一个来代替吗?为什么一个程序中要用两个?自己一直都是只用一个,没有涉及到用两个的情况,求指点?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • typedef是专门用于类型定义的,而#define仅是把某处的文本替换了再编译,两者是有区别的例如typedef  int T


    T p; 定义了p这个整形数据,

    而 T* p的话并不能定义为指向整型的指针。

    如果是#define  int T​的话就可以

    • 发布于 2019-01-28
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:12
  • 他们效果是差不多的,但#define本身并不在编译过程中执行,而是在预处理阶段就已经完成了,因此不作任何正确性检查

    • 发布于2019-01-28
    • 举报
    • 评论 0
    • 0
    • 0

  • 后面这种define用法比较奇怪,一般都是用typedef定义
    • 发布于2019-01-29
    • 举报
    • 评论 0
    • 0
    • 0

  • typedef是针对两个变量的重定义,属于关键字,define是简单的字符串替换,属于宏定义。
    • 发布于2019-01-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 其实都是一样的,对你的预处理效果写法两种都是可以的
    • 发布于2019-01-30
    • 举报
    • 评论 0
    • 0
    • 0

  • typedef是用来进行重定义的,可以将一个类型定义成另一种类型。

    #define是用来宏定义,用来进行数据替换的

    • 发布于2019-01-31
    • 举报
    • 评论 0
    • 0
    • 0

  • #define是宏定义也就是编译前都给替换了

    typedef是重新定义,将一个类型编程另一个类型

    • 发布于2019-02-02
    • 举报
    • 评论 0
    • 0
    • 0

  • 在这里两种都是可以的,define一般就是简单的替换功能,typedef是重新定义
    • 发布于2019-02-21
    • 举报
    • 评论 0
    • 0
    • 0

  • 效果是一样的,只是原理在编译时,编译器的处理方式不同。

    defein是直接代替

    而typedef则是要编译成一种类型

    • 发布于2019-02-23
    • 举报
    • 评论 0
    • 0
    • 0

  • #define.#define 的作用在C或C++语言源程序中允许用一个标识符来表示一个字符串称为“宏”。

    typedef是重新定义,将一个类型编程另一个类型
    • 发布于2019-02-24
    • 举报
    • 评论 0
    • 0
    • 0

  • #define是编译预处理指令,typefine是关键字,作为一种数据类型定义一个新名字,二者原理不同,效果是相同的
    • 发布于2019-02-26
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

关于C语言中的typedef 和define问题