C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在C中,我应该被允许使用指向不完整类型数组的指针吗?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
IAR Embedded C编译器对此很满意,我认为它是正确的C代码
struct incomplete;
typedef struct incomplete (*why_not)[2];
struct incomplete {struct incomplete *kNown_to_work;} array[2];
why_not ok = &array;

但是,gcc和clang对于why_not的定义扼要:

incomplete.c:2:29: error: array type has incomplete element type ‘struct incomplete’
 typedef struct incomplete (*why_not)[2];
                             ^

从技术上讲,没有理由拒绝“指向不完整数组的指针”的定义.毕竟,只有在取消引用这样的变量或执行某些指针算术时才需要结构定义.

我渴望在可能的情况下隐藏结构定义.

C标准对此有何看法?

解决方法

代码使用数组声明符,其中元素类型不完整.根据6.7.6.2/1数组声明符,这是ISO C中的约束违规:

大佬总结

以上是大佬教程为你收集整理的在C中,我应该被允许使用指向不完整类型数组的指针吗?全部内容,希望文章能够帮你解决在C中,我应该被允许使用指向不完整类型数组的指针吗?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: