结构 sizeof 无法编译
Posted
技术标签:
【中文标题】结构 sizeof 无法编译【英文标题】:Struct sizeof doesn't compile 【发布时间】:2021-05-19 14:33:42 【问题描述】:我试图创建两个结构,一个是主要的,他有指向第二个结构的指针。 当我尝试在 main 中使用 sizeof 时,它显示“无法打开文件 C:/...”
typedef struct virus
int time;
zol* x;
;
typedef struct zol
int y;
;
void main()
printf("%d", (int)sizeof(virus));
【问题讨论】:
“无法打开文件”是你编译过程的问题,而不是你的代码问题。 上面的代码有很多问题(比如typedef
s,void
的返回类型main()
),但是你的sizeof(virus)
其实没问题。
1) 那些typedef
在 C++ 中既错误又不必要。 2) zol* x;
但此时zol
尚未声明。
这真的是 C++ 吗?代码看起来像纯 C(忽略 C 和 C++ 常见的错误)。
@MarekR 作为 C,代码无法编译。
【参考方案1】:
引用的错误消息(可能)是代码中编译错误的结果。下次您发布错误消息时,请发布第一个错误消息,而不是最后一个。
这里是更正的代码。您的代码的主要问题是您在定义它之前使用了zol
,它应该是相反的。 printf
还缺少一个头文件,并且 typedef 错误。
#include <cstdio>
struct zol
int y;
;
struct virus
int time;
zol* x;
;
int main()
printf("%d\n", (int)sizeof(virus));
【讨论】:
我会添加#include <cstdio>
,也许会添加std::printf("%zu", sizeof(virus));
@TedLyngmo 完成。以上是关于结构 sizeof 无法编译的主要内容,如果未能解决你的问题,请参考以下文章