1

我在 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 定义

4

2 回答 2

4

是的,这不是问题。您基本上是在说它们都是相同的.. :)

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

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

如果它们都相同,理论上为什么编译器需要将它们区分开来?

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

于 2013-05-21T17:38:36.207 回答
-3

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

于 2013-05-21T17:39:44.197 回答