SDCC 编译警告 88:将 LITERAL 值转换为“通用”指针

问题描述 投票:0回答:1

我在代码“CT_PD->bank = PDbank”处收到警告, 只要“CT_PD->...”就会发生警告, 我不知道如何解决它。有谁知道该怎么办吗?

警告信息:: 警告 88:将 LITERAL 值转换为“通用”指针 来自类型“const-int Literal” 输入“struct __00000000 generic*fixed”


typedef struct  {
    uint8_t bank;
    .....
    uint8_t xxx;
} CT_PD_Type;
#define PDbank  0x24
#define REGISTER_BASE     0x2000 //register address base
#define CT_PD                 ((CT_PD_Type *) REGISTER_BASE)

void blockWait(uint32_t dura_ms){
    uint32_t expire, duration;
    duration = PE_timer_freq/1000*dura_ms;
    CT_PD->bank = PDbank;
    expire = (CT_PD->timercounter) + duration;
    while(1){
        if (CT_PD->timercounter > expire)
            break;
    }
}

8051 sdcc
1个回答
1
投票

精美手册第3.3.4章说:

--disable-warning 禁用带有数字 的特定警告。

因此您可能想尝试将

--disable-warning 88
添加到编译器命令行中。


精美手册第3.16章说:

SDCC 支持以下#pragma 指令:

[...]

disable_warning - 编译器将不再警告您有关警告号的信息

因此您可以将

#pragma disable_warning 88
添加到您的源中,作为替代方案。

© www.soinside.com 2019 - 2024. All rights reserved.