有人可以解释一下C中的重新定义:
可以做这样的事吗
typedef struct NumberContainer* ptrNumberContainer;
之后
typedef struct NumberContainer* ptrCall;
在连接过程中可能会引起一些问题吗?提前谢谢
答案 0 :(得分:5)
不,这完全没问题 - 你有两个相同基础类型的同义词 - 这很常见。但是,通过使用typedef隐藏某事物是指针这一事实的做法在C中通常被视为不好的做法。
答案 1 :(得分:1)
当然有可能。定义两个不同的类型名称来表示相同的事物。
答案 2 :(得分:0)
在这种情况下,ptrCall
实际上会引用与ptrNumberContainer
相同的类型。我认为它们也兼容编译时间。所以你可以说,例如:
ptrNumberContainer p1;
ptrCall p2;
然后这些将起作用:
p1 = p2;
*p1 = *p2;
答案 3 :(得分:-1)
这不是重新定义。重新定义是指宏定义:
#define FOOBAR 1
#undef FOOBAR
#define FOOBAR 2