gpt4 book ai didi

c++ - 类型检查中的纯名称等价

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:51:24 25 4
gpt4 key购买 nike

我正在阅读 Ravi Sethi 关于编程语言概念的书,上面写着

int *i1;  
int *i2;

After these declarations, the types of i1 and i2 are not name type compatible. In a language that uses name type compatibility, variables i1 and i2 could not be compared or assigned to each other.

我想知道为什么它们的名称不兼容?它们具有相同的名称类型:int。有人可以解释一下并举一个有效的纯名称等价的例子吗?谢谢

最佳答案

它们都没有 int 类型.两者都被键入为指向 int 的指针.我认为 Sethi 的观点是,在一种使用(仅)名称等价的假设语言中,这两个指向- int 的指针类型表达式创建两种不兼容的不同类型——很像 new 的两种相同用法创建不同的、非等效的对象。

在名称等价语言中,您必须为类型表达式命名才能以类型兼容的方式多次使用它。在 C++ 语法中,这需要使用 typedef :

typedef int *intp;
intp i1;
intp i2;

现在,i1i2具有名称兼容的类型。

关于c++ - 类型检查中的纯名称等价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15488973/

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