C语言里面的typedef为什么反汇编之后找不到相关的编码呢?
今天在一个群里看到这样一个问题:C语言里面的typedef 为什么反汇编之后找不到相关的编码呢?
要介绍这个问题,就得首先搞明白typedef到底是什么。
百科上是这么解释的:
typedef是在计算机编程语言中用来为复杂的声明定义简单的别名,它与宏定义有些差异。
简单来说,就是仅仅给类型起别名,那么,类型是什么?
类型是C语言抽象的结果,本质上是用来确定数据长度的,比如在32位环境中,int是4字节。同时语法层面的类型检查可以避免一些bug。
类型别名其实是创建了一个一切都相同的累型,编译时其实是一样的,所以即使是直接用gcc的-S编译成汇编代码,也什么都看不出来。
具体例子回头放评论区