标签: armclang

-g(或--debug)命令选项是否会增加加载的内存占用量?

-g(或) clang 命令选项是否会--debug增加已编译应用程序的内存占用量?具体来说,它是否会改变嵌入式 ARM 系统上加载的二进制大小?

注意:我知道调试版本向 ELF 添加了符号表和更多调试信息,但这应该由运行在主机(例如,带有 Eclipse 的 PC)上的调试器使用。问题是它是否会改变加载图像的大小。

c clang armclang

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

constexpr构造函数初始化程序列表中的Constexpr函数

我想用结构名称的哈希值初始化结构成员。

constexpr uint32_t myHash(const char* const data)
{ //Some code for hash
    return myHash;
}

struct My_Struct{
    constexpr Test() : ID(myHash("My_Struct"))
    {
    }
    const uint32_t ID; 
}
Run Code Online (Sandbox Code Playgroud)

当我有:

constexpr My_Struct my_constexpr_struct;
Run Code Online (Sandbox Code Playgroud)

然后,在编译时成功计算了哈希。但是,当我有主要职能时

My_Struct my_normal_struct;
Run Code Online (Sandbox Code Playgroud)

然后它将调用

constexpr uint32_t myHash(const char* const data)
Run Code Online (Sandbox Code Playgroud)

而不是简单地使用编译时间常数初始化struct成员。

显然,这将导致可避免的重大性能损失。

关于如何在编译时执行编译器的任何想法或建议?我真的不想做:

constexpr uint32_t MY_STRUCT_ID = myHash("My_Struct");
struct My_Struct{
    constexpr Test() : ID(MY_STRUCT_ID)
    {
    }
    const uint32_t ID; 
Run Code Online (Sandbox Code Playgroud)

谢谢。

c++ constexpr armclang

0
推荐指数
1
解决办法
523
查看次数

标签 统计

armclang ×2

c ×1

c++ ×1

clang ×1

constexpr ×1