相关疑难解决方法(0)

C++中的内联函数

Hii,

我是C++的新手.我确实阅读过有关内联函数的内容并正确理解它们.但是这个站点说"如果我们在一个.cpp文件中写入内联函数的定义并从另一个文件调用它,我们得到一个'未解决的外部'错误....为什么会这样......?这可以做到正常功能正确...如果我错了请纠正我...

谢谢

c++

5
推荐指数
1
解决办法
1492
查看次数

是否内联此功能?

我应该实现一个比较两个字符串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不应该用于包含循环或开关的函数的地方,但我不记得在哪里以及为什么.

c++ whitespace inline strcmp

4
推荐指数
1
解决办法
331
查看次数

标签 统计

c++ ×2

inline ×1

strcmp ×1

whitespace ×1