gpt4 book ai didi

c - 取消引用指向不完整类型的指针

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

我已经看到很多关于此的问题,但我将在没有特定代码的情况下以不同的方式提出问题。有没有办法EASILY 确定导致类型不完整的原因?在我的例子中,我使用的是别人的代码,我完全确定我没有正确的 header ,但是(因为计算机比人类眼球更快更好地处理这些东西)有没有办法让编译器说,“嘿,你认为你在第 34 行输入了 X,但实际上 缺少。”错误本身仅在您分配时显示,这不是很有帮助。

最佳答案

前几天我看到一个问题,有人通过指定类似的东西无意中使用了不完整的类型

struct a {
int q;
};
struct A *x;
x->q = 3;

编译器知道 struct A 是一个结构,尽管 A 凭借 struct 关键字完全未定义。

那是在 C++ 中,struct 的这种用法是非典型的(而且,事实证明,这可能会导致脚射)。在 C 中,如果你这样做的话

typedef struct a {
...
} a;

然后您可以使用a 作为类型名并稍后省略struct。如果您输入错误的名称或忘记 header ,这将导致编译器稍后给您一个未定义的标识符错误,而不是不完整的类型。

关于c - 取消引用指向不完整类型的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2700646/

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