我有两个C ++文件试图导出/使用如下函数:
// A.cpp
void aFunc(char const *const aArg) {
}
// B.cpp
extern void aFunc(char const *);
void bFunc() {
aFunc("test");
}
当我尝试编译并链接以上代码时,出现链接器错误,指示aFunc
是一个未解决的外部文件。但是,如果我将 A.cpp 修改为以下内容:
// A.cpp
void aFunc(char const *);
void aFunc(char const *const aArg) {
}
然后一切都会按预期进行编译。有人可以解释为什么将声明添加到 A.cpp 会更改导出的aFunc
整齐的名称吗?我的期望是,aFunc
的整齐的名称在两种情况下都是相同的,因为最终级别const
不会影响界面。