我有一个包含一组函数的文件。对于其中一个函数,我想编写一个辅助函数,它基本上采用 char * 并跳过所有空格。
我认为应该这样做:
namespace {
const int kNotFound = -1;
void SkipWhitespace(const char *s); // forward declaration - doesn't seem to work?
}
void foo(const char *s1, const char *s2) {
// do some stuff
SkipWhitespace(s1);
SkipWhitespace(s2);
// continue with other stuff
}
void SkipWhitespace(const char *s) {
for (; !isspace(s); ++s) {}
}
但这给了我一个编译器错误。我需要将定义放在未命名的命名空间中吗?
你必须define它也在匿名名称空间中:
namespace {
...
void SkipWhitespace(const char *s); // forward declaration - doesn't seem to work?
}
void foo(const char *s1, const char *s2) {
...
}
namespace {
void SkipWhitespace(const char s*) {
for (; !isspace(s); ++s) {}
}
}
但除非存在循环依赖,否则我不确定它的价值是什么。只需一次性声明和定义该函数即可。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)