☰
  • 首页
  • 规则分类
  • 项目介绍
search
•••

小心遗漏逗号导致的非预期字符串连接

11.12 ID_literal_oddConcat
目录 › next › previous

注意可能导致非预期结果的字符串连接,尤其在初始化列表中,小心逗号被遗漏。

字符串连接的适用场景:

  • 字符串过长不便于显示时可将字符串拆成多个子串分行书写
  • 宏和字符串连接在一起完成一些更灵活的操作

除此之外不应将一个字符串拆成多个子串。

示例:

string strs[] = {
    "123", "456", "789",
    "123", "456", "789"   // Rather suspicious, missing a comma?
    "123", "456", "789"
};

例中初始化列表第 2 行的 "789" 与第 3 行的 "123" 中间没有逗号,会连接成 "789123",显然是不符合预期的,这种问题属于常见笔误。

又如:

void foo(const char*);
void foo(const char*, const char*);

void bar() {
    foo("abc" "123");  // Rather suspicious, which ‘foo’ is right?
}
Copyright©2024 360 Security Technology Inc., Licensed under the Apache-2.0 license.