相关疑难解决方法(0)

C++中的静态变量

我想知道头文件中的静态变量与类中声明的静态变量之间的区别.在头文件中声明静态变量时,其范围仅限于.h文件或所有单元.一般来说静态变量在类中声明时在.cpp文件中初始化了吗?那么这是否意味着静态变量范围仅限于2个编译单元?

c++ static scope

64
推荐指数
3
解决办法
13万
查看次数

GCC 可以合并重复的全局字符串数组吗?

我一直想知道是否可以使用带有一些优化标志的 GCC 进行编译以避免 .rodata 部分有两个重复的数组?因此,内存地址将是相同的。例如:

\n\n
const char str [7] = "string";\n\nconst char str1 [7] = "string";\n\n\nint printf (const char * format, ...);\n\nint main (void) {\n\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0 if (str == str1)\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0 printf ("Equal memory addresses");\n\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0 return 0;\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

那么在上面的例子中,编译器是否有可能以某种方式使用相同的内存地址?

\n

c gcc compiler-optimization

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

在头文件中定义全局 static const std::string 是否正确

在头文件中定义全局 std::string 是否正确,如下所示:

namespace Colors
{
    static const std::string s_blue = "Blue";
}
Run Code Online (Sandbox Code Playgroud)

c++

2
推荐指数
1
解决办法
1226
查看次数

标签 统计

c++ ×2

c ×1

compiler-optimization ×1

gcc ×1

scope ×1

static ×1