姓名等同问题

Joh*_*lak 4 c equivalence type-equivalence

假设我有:

int a;
int b;
Run Code Online (Sandbox Code Playgroud)

变量ab名称是否等效(更具体地说,因为原始类型没有类型名称,它们是否可以被视为名称等价)?

谢谢.

Jim*_*ter 7

名称(更恰当地,名义上)等价意味着值具有与其类型的(完全限定)名称所确定的相同类型 - 例如,a并且b名义上类型相同,因为它们都具有"int"类型.结构等价意味着这些值被认为具有相同的类型,因为它们的类型在结构上是等价的,无论名称如何.名义类型等价意味着结构类型等价,因为命名类型在结构上等同于它自身.你ab,名义上是等价的,因为它们的名称相同("int").声称"原始类型没有类型名称"只是假的 - int是类型名称.有什么区别int a; int b;int a, b;-都定义ab使用相同的(结构和名称)类型.

C'S型系统通常是名...例如,int *并且short*是不同的类型,甚至是intshort有相同的表现,以及struct foo { int x; }struct bar { int x; }不同类型的,即使他们总是有相同的表示.