我用gnu手臂精灵gcc编译了一些类型定义,标志设置为-02 -g.在我用objdump创建了一个.lst文件之后,下面的命令行选项设置了-s -S -D。
我在列表中找不到类型定义。不是在.text,也不是在.data区?
unsigned int state_0=0x6;
typedef unsigned char uc32;
typedef struct{
unsigned int mask;
uc32 id;
uc32 type;
unsigned int attribute;
} Pin;
unsigned int state=2;
void foo(void)
{
state=0;
state=1;
}
void foo_1(void)
{
Pin pin_1;
uc32 loop=4;
foo();
pin_1.mask=0x5;
state=0x07;
}发布于 2014-11-20 21:09:16
typedef为现有类型创建别名--不再;编译器将将其解析为实际类型并生成相应的代码,类型名称符号不需要出现在最终代码或调试信息中。
此外,类型定义不实例化数据对象,它没有位置,因此不会出现在链接映射中。
https://stackoverflow.com/questions/27046880
复制相似问题