Keil编译时报“extended constant initialiser used”警告
今天在使用Keil编译工程的时候强转指针类型会报 warning: #1296-D: extended constant initialiser used
警告处代码如下
void bsp_UsartClockDisable(USART_TypeDef* USARTx)
{
configASSERT(USARTx);
switch ((uint32_t)USARTx) {
case (uint32_t)USART1 :
case (uint32_t)USART6 :
RCC_APB2PeriphClockCmd(bsp_GetUsartClock(USARTx),DISABLE);
break;
case (uint32_t)USART2 :
case (uint32_t)USART3 :
case (uint32_t)UART4 :
case (uint32_t)UART5 :
case (uint32_t)UART7 :
case (uint32_t)UART8 :
RCC_APB1PeriphClockCmd(bsp_GetUsartClock(USARTx),DISABLE);
break;
default:
break ;
}
}
问题出在(uint32_t)USART2强转指针类型这里,查阅RVDK_Compiler_Guide_B.pdf,可以看到跟C语言拓展有关
打开keil查看果然GUN extensions被勾上了
取消勾选点OK然后重新编译问题解决
如果没解决请参考:https://filon.blog.csdn.net/article/details/121465227?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EOPENSEARCH%7EHighlightScore-1.queryctrv2&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7EOPENSEARCH%7EHighlightScore-1.queryctrv2&utm_relevant_index=1