c/c++语言开发共享为什么我可以使用不存在的类型的typedef?

以下小程序在gcc上编译并运行正常:

#include  #include  typedef struct foo dne; int main(int argc, char *argv[]) { dne *dne_var = malloc(sizeof(void*)); printf("%pn", dne_var); return 0; } 

为什么typedef有效?

    这条线

     typedef struct foo dne; 

    隐式声明一个(此时不完整)结构struct foo 。 指向不完整类型的指针是完整类型,因此例如它的大小是已知的,您可以声明该类型的对象。 但是,在你提供完整的声明之前, struct foo本身并不完整,例如

     dne dne_var; 

    或取消引用您的指针访问结构的字段将是无效的。

      以上就是c/c++开发分享为什么我可以使用不存在的类型的typedef?相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/545747.html

      (0)
      上一篇 2021年1月10日
      下一篇 2021年1月10日

      精彩推荐