Hii,
我是C++的新手.我确实阅读过有关内联函数的内容并正确理解它们.但是这个站点说"如果我们在一个.cpp文件中写入内联函数的定义并从另一个文件调用它,我们得到一个'未解决的外部'错误....为什么会这样......?这可以做到正常功能正确...如果我错了请纠正我...
谢谢
我应该实现一个比较两个字符串simliar strcmp但忽略空白字符的函数,所以
strcmpignorews("abc ", " a b c")
Run Code Online (Sandbox Code Playgroud)
应该给出相同的结果.
这是我的实现:
namespace {
void SkipWhitespace(const char *&s) {
for (; std::isspace(*s, std::locale::classic); ++s);
}
}
int strcmpignorews(const char *s1, const char *s2) {
for (; *s1 != '\0' && *s2 != '\0'; ++s1, ++s2) {
SkipWhitespace(s1);
SkipWhitespace(s2);
if (*s1 != *s2) {
break;
}
}
return (*s1 < *s2) ? -1 : ((*s1 == *s2) ? 0 : 1);
}
Run Code Online (Sandbox Code Playgroud)
现在,问题是,内联SkipWhitespace函数是否有意义?我想我已经读过一些inline不应该用于包含循环或开关的函数的地方,但我不记得在哪里以及为什么.