c类型等价的编译器
发布时间:2020-12-16 03:40:18 所属栏目:百科 来源:网络整理
导读:在C语言中,如果我们有: typedef int a[100];typedef int b[200]; 那么类型a和b是等价的吗? 据我所知,C使用名称等价, 但我很困惑. 解决方法 在您的示例中,a是int [100]类型的别名,b是int [200]类型的别名.这两种类型不相同,因为数组的大小是其类型的一部分,
在C语言中,如果我们有:
typedef int a[100]; typedef int b[200]; 那么类型a和b是等价的吗? 解决方法
在您的示例中,a是int [100]类型的别名,b是int [200]类型的别名.这两种类型不相同,因为数组的大小是其类型的一部分,不同的大小意味着不同的类型.
如果第二行是typedef int b [100] ;,则a和b是等价的.
结构和联合在名义上是键入的,如果你有两个标记为A和B的结构(或联合)类型,它们具有完全相同的主体,它们仍然被认为是不同的类型.因此,如果变量具有类型struct A,则无法在不首先转换结构B的情况下为其分配结构B. 对于typedef来说,情况并非如此,因为它只是别名.所以如果你有两个typedef typedef X a; typedef X b ;,那么X,a和b都是无法区分的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |