链接器对此报告重复的符号:
#ifndef testttt
#define testttt
void anything(){
std::cout<<"hellooooooo";
}
#endif
因为它在include防护内部,所以我希望此函数只定义一次。但显然不是。
我知道我可以static在它前面加上这个词,然后它就会起作用(我仍然觉得很讽刺,因为应该将static赋予它内部链接,但是可以从多个cpp文件中使用该函数)。
因此,我想我的问题分为两部分:1)为什么包含保护不像其他标头项那样阻止该函数的多个定义,以及2)为什么static当应该假定静态名称阻止名称可见时,单词会解决此问题吗?在其他翻译单位中?我添加了它,实际上可以从包含此头文件的任何位置调用此函数。
皈依舞
潇湘沐
相关分类