c中相同类型的多个typedef

时间:2013-05-21 17:36:32

标签: typedef

我在c

中看到过多个typedef用于相同的类型
typedef struct i_data
{
    uint32 size;
    uint8 *data;
} I_DATA, *I_DATA_PTR;


typedef I_DATA I_TEMP;

typedef I_DATA *I_TEMP_PTR;

typedef I_DATA I_SEARCH_TEMP;

typedef I_DATA *I_SEARCH_PTR;

有可能吗?编译器如何区分所有这种typedef定义

2 个答案:

答案 0 :(得分:4)

是的,这不是问题。你基本上说他们都是完全一样的.. :)

I_DATA和I_TEMP以及I_SEARCH_TEMP是同一个东西,i_data结构的typedef。

I_DATA_PTR和I_TEMP_PTR以及I_SEARCH_PTR是同一个东西,是指向i_data结构的typedef的指针。

如果它们完全相同,理论上为什么编译器需要区分它们?

这有点像一个有姓名和昵称的人,它可能不是同一个名字,但它仍然是同一个人;)

答案 1 :(得分:-3)

当然有可能!我无法确切地告诉你编译器是如何计算出来的......我从未读过编译器的内部工作原理。我知道同一类型的多个类型定义不是问题!