gpt4 book ai didi

c 类型等价的编译器

转载 作者:太空狗 更新时间:2023-10-29 17:20:26 25 4
gpt4 key购买 nike

在C语言中,如果我们有:

typedef int a[100];
typedef int b[200];

那么类型a和b是等价的吗?据我所知,C 使用名称等价,但我很困惑。

最佳答案

在您的示例中,a 是类型 int[100] 的别名,b 是类型 int[ 200]。这两种类型并不等同,因为数组的大小是其类型的一部分,不同的大小意味着不同的类型。

如果第二行是 typedef int b[100];,则 ab 是等价的。

As far as i know C uses name equivalence

结构和 union 在名义上是类型化的,如果你有两个标记为 A 和 B 的结构(或 union )类型,它们具有完全相同的主体,它们仍然被认为是不同的类型。因此,如果变量的类型为 struct A,则必须先转换它才能将其分配给 struct B

typedef 不是这样,它们只是别名。所以如果你有两个 typedefs typedef X a; typedef X b;,那么Xab都没有区别。

关于c 类型等价的编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44311545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com