C中是否存在结构类型等价?
答案 0 :(得分:3)
严格地说,没有 - 不同命名的类型是不同的类型,即使类型的结构是相同的。 (当然,typedef
只是为现有类型引入了一个替代名称;这些类型的类型相同。)
然而,在实践中,有许多特技你可以拉扯和逃脱。但严格来说,他们是作弊。使用void指针是颠覆系统的一种方式;另一个不使用函数的原型声明;变长参数列表可以是另一个。
答案 1 :(得分:0)
如果您在询问是否可以比较两个struct
的相等性,答案是否定的。只有赋值,您可以从函数返回结构。
答案 2 :(得分:-2)
没有运算符来比较C中的两个结构,你可以使用memcmp:
if( memcmp( &structvar1, &structvar2, sizeof structvar1 ) )
puts("not equal");
else
puts("equal");