我在C ++中有一些代码:
// A.h
extern const char *names[3];
// B.cpp
#include "A.h"
const char *names[3] = {
"Name1",
"Name2"
"Name3"
};
void getName()
{
char *name;
strncpy(name, names[0], 5);
};
// C.cpp
#include "A.h"
然后,当我构建它时,它会产生以下错误:
对“名称”的未定义引用是什么原因以及如何解决?
您提供的示例中有一些错误,我想您不只是复制/粘贴源代码。类似于line中的分号const char *names[3]; = {
,或者“ Name2”旁边的字符串列表中缺少逗号。
关于您的问题。您不应该在您的B.cpp中包括Ah,我的意思是#include "A.h"
应该删除该行。您包括头文件,并且仅在将要*names
在其他cpp文件中使用指针的位置使用extern关键字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句