首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Turbo C++ 3.0给C程序带来“类型大小未知或零”的错误?

问为什么Turbo C++ 3.0给C程序带来“类型大小未知或零”的错误?
EN

Stack Overflow用户
提问于 2014-12-04 17:35:58
回答 2查看 3.5K关注 0票数 2
代码语言:javascript
复制
#include<stdio.h>
struct Node
{

};
int main()
{
   return 0;
}

这个简单的代码是用文件名NODE.C保存的,这会产生一个错误:

错误NODE.C5:类型大小未知或为零

如果我将扩展从NODE.C更改为NODE.CPP,代码运行良好

有人能解释一下为什么会这样吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-04 17:43:21

空结构在C中是不合法的。

根据C99标准,相关的语法产品是:

​

​

请注意,结构声明列表不是可选的,必须始终至少有一个结构声明.

相反,下面是C++语法:

​

​

注意,成员规范是可选的。

还请注意,struct中的空C++将不具有零大小。C语言还要求所有对象都具有非零大小;所看到的错误消息不完全准确(错误是正确的,但描述性消息不是)。

票数 7
EN

Stack Overflow用户

发布于 2014-12-04 17:42:25

空结构是C语言中的一个语法错误。C语言的语法是用来禁止空结构的。

但是在C++中使用空结构是合法的。这就是为什么.C扩展给了您一个错误。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27300406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档