foo.c的
struct foo {
int a;
};
bar.c
struct foo {
char *s;
double x,y;
};
Run Code Online (Sandbox Code Playgroud)
结构定义仅在.c文件中.根据C标准是合法的吗?标准的哪一部分是这样说的?编辑:没有结构定义的#inclusion.
谢谢大家快速回复!:d
代码完全合法C.您可能会遇到调试程序的问题(将一种类型误认为另一种类型并尝试将其中一种显示为另一种类型),但从语言的角度来看它很好.
标准的任何部分都没有直接说这是合法的.相反,该标准的任何部分都没有说它是非法的.
这样的东西在C++中是非法的,因为C++将链接的概念扩展到类,而C++类中的非本地语言总是具有外部链接.