完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
我正在将一些设计为在Nordic nRF8200上运行的代码移植到STM8L152C6。代码是使用Keil C5编写的。我正在使用Cosmic CXSTM8编译器。
我在CASE中遇到编译器错误'Invalid Constant Expression':我无法理解的switch语句行。 代码段包含在下面。 开关(pipe_num) { 案例PIPE_LINK_LOSS_ALERT_ALERT_LEVEL_RX: alert_handle_on_link_loss =(alert_level_t)buffer [0]; 打破; 默认: 打破; } pipe_num是本地定义的uint8_t,和 #define PIPE_LINK_LOSS_ALERT_ALERT_LEVEL_RX 6在包含的头文件中声明。 在这种情况下,我无法理解编译器正在处理异常。如果有人可以提供帮助,我会非常感激。 以上来自于谷歌翻译 以下为原文 I'm porting some code designed to run on a Nordic nRF8200 to an STM8L152C6. The code was orginally compiled using Keil C5. I am using the Cosmic CXSTM8 compiler. I am getting a compiler error 'Invalid Constant Expression' in the CASE: line of a switch statement that I cannot understand. code snippet is included below. switch (pipe_num) { case PIPE_LINK_LOSS_ALERT_ALERT_LEVEL_RX: alert_handle_on_link_loss = (alert_level_t)buffer[0]; break; default: break; } pipe_num is a locally defined uint8_t, and #define PIPE_LINK_LOSS_ALERT_ALERT_LEVEL_RX 6 is declared in an included header file. I cannot understand what the compiler is taking exception to in this case. If anyone could help I'd really appreciate it. |
|
相关推荐
1个回答
|
|
|
''我在CASE中遇到编译错误'无效常量表达式':我无法理解的switch语句行''
首先,在此之前是否还有其他错误或警告?如果是这样, 你的意思是这一行: 案例PIPE_LINK_LOSS_ALERT_ALERT_LEVEL_RX: 唯一的常量表达式是PIPE_LINK_LOSS_ALERT_ALERT_LEVEL_RX - 因此请重新检查该定义。 例如,您是否确定它不受某些条件编译选项的影响,而这些选项在项目中没有(正确)设置...? Howver, alert_handle_on_link_loss =(alert_level_t)buffer [0]; 也是一个不变的表达 - 你确定它不抱怨吗? “在这种情况下,我无法理解编译器正在处理异常的问题” 您是否尝试过查看预处理器输出? 请参阅:http://www.8052.com/forum/read/29152 这不是8052特定的 - 确保你没有犯过那里提到的错误! 以上来自于谷歌翻译 以下为原文 ''I am getting a compiler error 'Invalid Constant Expression' in the CASE: line of a switch statement that I cannot understand'' First, are there any other errors or warnings before this? If so, You mean this line: case PIPE_LINK_LOSS_ALERT_ALERT_LEVEL_RX: The only constant expression there is PIPE_LINK_LOSS_ALERT_ALERT_LEVEL_RX - so re-check that definition. Are you sure it isn't, for example, affected by some conditional compilation options that you've not (properly) set-up in your project...? Howver, alert_handle_on_link_loss = (alert_level_t)buffer[0]; is also a constant expression - are you sure it's not complaining about that? ''I cannot understand what the compiler is taking exception to in this case'' Have you tried looking at the preprocessor output? See: http://www.8052.com/forum/read/29152 It's not 8052-specific - and do make sure that you haven't made the very mistake mentioned there! |
|
|
|
|
只有小组成员才能发言,加入小组>>
stm32mp157的异核通信的rpmsg_sdb的m4固件和a7驱动该如何编写?
1453 浏览 0 评论
stm32f103用freertos对一个采样率为1kHz的传感器,进行采样,数据出差
1502 浏览 0 评论
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
3649 浏览 1 评论
3842 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
2461 浏览 1 评论
STM32H7打开DCache后,出现了串口接收信息为空的现象,是哪里出了问题?
727浏览 5评论
用NANO STM32F103RBT6的开发板烧录不了是哪里出了问题?
661浏览 5评论
710浏览 5评论
外部中断触发类型为双边沿触发,进入中断回调后有什么办法判断该边沿是上升沿还是下降沿?
941浏览 5评论
STM32L071CBT6低温环境下无法正常工作是什么原因引起的?
745浏览 5评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-2 03:05 , Processed in 0.584235 second(s), Total 44, Slave 37 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
1903