我在代码“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;
}
}
精美手册第3.3.4章说:
--disable-warning
禁用带有数字 的特定警告。
因此您可能想尝试将
--disable-warning 88
添加到编译器命令行中。
精美手册第3.16章说:
SDCC 支持以下#pragma 指令:
[...]
• disable_warning
- 编译器将不再警告您有关警告号的信息 。
因此您可以将
#pragma disable_warning 88
添加到您的源中,作为替代方案。