Joh*_*lak 4 c equivalence type-equivalence
假设我有:
int a;
int b;
Run Code Online (Sandbox Code Playgroud)
变量a
和b
名称是否等效(更具体地说,因为原始类型没有类型名称,它们是否可以被视为名称等价)?
谢谢.
名称(更恰当地,名义上)等价意味着值具有与其类型的(完全限定)名称所确定的相同类型 - 例如,a
并且b
名义上类型相同,因为它们都具有"int"类型.结构等价意味着这些值被认为具有相同的类型,因为它们的类型在结构上是等价的,无论名称如何.名义类型等价意味着结构类型等价,因为命名类型在结构上等同于它自身.你a
和b
,名义上是等价的,因为它们的名称相同("int").声称"原始类型没有类型名称"只是假的 - int
是类型名称.有什么区别int a; int b;
和int a, b;
-都定义a
并b
使用相同的(结构和名称)类型.
C'S型系统通常是名...例如,int *
并且short*
是不同的类型,甚至是int
和short
有相同的表现,以及struct foo { int x; }
和struct bar { int x; }
不同类型的,即使他们总是有相同的表示.