So, say I have the following C++ header, testheader.h
:
struct mystruct
{
struct myinnerstruct
{
int x;
} astruct;
};
struct myinnerstruct
{
int x;
};
和以下C++来源,test.cpp
:
#include "testheader.h"
using namespace std;
int main()
{
return 0;
}
g ++在汇编/链接中没有问题。
现在,如果我有同样的主人,而不是C++来源,则一份C源文件test.c
:
#include "testheader.h"
int main()
{
return 0;
}
我用快乐汇编,我有以下错误:
error: redefinition of struct myinnerstruct
因此,我认为,C版的范围是翻译单位,C++版本的范围是有限的? 谁能证实这种情况,也许会给我一个理由,说明它为何有意义? 我做一些C和C++编码的混合,这给我带来了很大的麻烦。
Any insight is greatly appreciated. Thanks!