capl中写char mes_target_Default[100][100] = {DmmPassiveSafetyNMFr01,DmmPassSafeCANFr02},执行显示Error 1111 at (9,39): Must be constant expression. SavePacket_ID.cin 该怎么修改
时间: 2024-04-15 19:30:24 浏览: 175
ProgrammingWithCAPL.rar_CANoe CAPL_CAPL_ProgrammingWithCAPL_capl
5星 · 资源好评率100%
在CAPL中,数组的初始化必须使用常量表达式。在你的代码中,`DmmPassiveSafetyNMFr01`和`DmmPassSafeCANFr02`可能不被视为常量表达式,导致出现错误。
要解决这个问题,你可以尝试以下两种方法:
1. 使用字符串常量初始化数组元素:
```c
char mes_target_Default[100][100] = {"DmmPassiveSafetyNMFr01", "DmmPassSafeCANFr02"};
```
通过将字符串用双引号括起来,你可以将它们视为字符串常量,并将其分配给数组元素。
2. 在全局范围外使用宏定义:
```c
#define DMM_PASSIVE_SAFETY "DmmPassiveSafetyNMFr01"
#define DMM_PASS_SAFE_CAN "DmmPassSafeCANFr02"
char mes_target_Default[100][100] = {DMM_PASSIVE_SAFETY, DMM_PASS_SAFE_CAN};
```
通过在全局范围内使用宏定义,你可以将常量字符串关联到宏,并在初始化数组时使用这些宏。
请根据你的代码和需求选择适合的解决方案。希望能帮助到你!如果还有其他问题,请随时提问。
阅读全文