首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GCC -由于类型转换警告而截断

GCC -由于类型转换警告而截断
EN

Stack Overflow用户
提问于 2022-02-08 15:24:42
回答 1查看 92关注 0票数 0

为什么编译器由于将uint32转换为uint8变量类型而不抛出值截断?精确的线result = reg_value;

代码语言:javascript
复制
void read_byte_register(uint32_t u32_address_rd_byte_reg,
        uint8_t *pu8_Data_rd_byte_reg)
{
    uint8_t result;
    uint32_t reg_value;
    uint32_t *reg_ptr;

    reg_ptr = (uint32_t *) u32_address_rd_byte_reg;

    reg_value = *(reg_ptr);

    result = reg_value;

    *(pu8_Data_rd_byte_reg) = result;
}

构建命令。您可以看到,它正在为ARM Cortex M3构建:

代码语言:javascript
复制
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -pedantic -Wall -Wextra  -g3 -T "linker_script.ld" -Xlinker --gc-sections -Wl,-Map,"output_map.map" --specs=nano.specs -o "output.elf"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-09 08:09:00

如注释中所述,添加标志-Wconversion解决了问题。显然,默认情况下它是禁用的。-Wconversion支持关于隐式类型转换的警告。附上有关警告的屏幕截图:

代码语言:javascript
复制
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -pedantic -Wall -Wextra -Wconversion -g3 -T "linker_script.ld" -Xlinker --gc-sections -Wl,-Map,"output_map.map" --specs=nano.specs -o "output.elf"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71036437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档