gpt4 book ai didi

c - 为什么可以在 C 中使用未定义的结构

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

#include <stdio.h>

int main()
{
printf("%d", sizeof(struct token *));
}

以上代码可以在Linux下使用gcc编译链接。你们中的任何人都可以向我解释幕后的事情吗?我知道要点固定内存大小,所以结构token 与 sizeof 无关,但即使在 gcc 中打开警告选项,也根本没有关于“不存在”结构的警告。这个问题的背景是我正在阅读其他人的一些源代码,我正在非常努力地寻找“struct token”的定义,但当然失败了。

最佳答案

因为您正在尝试获取指向struct token指针 的大小。指针的大小不取决于结构的实际定义方式。

通常,您甚至可以声明类型为 struct token* 的变量,但您不能取消引用它(例如,通过指针访问成员)。

关于c - 为什么可以在 C 中使用未定义的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10751027/

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