使用gnu gcc编译器定义类型

时间:2014-11-20 18:28:29

标签: c gcc embedded arm

我用gnu arm-elf-gcc编译了一些typedefines,flags set -02 -g。用objdump创建.lst文件后,按照命令行选项设置-s -S -D。

我无法在列表中找到typedefines。不是.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;
}

1 个答案:

答案 0 :(得分:0)

typedef为现有类型创建别名 - 不再包含;编译器会将其解析为实际类型并相应地生成代码,类型名称符号不需要出现在最终代码或调试信息中。

此外,类型定义不会实例化数据对象,它没有位置,因此不会出现在链接映射中。