【发布时间】:2020-05-29 09:38:18
【问题描述】:
我正在为具有多个可变大小数组的函数生成代码。代码需要在linux(使用gcc)和windows机器(使用MinGW)上编译。
为了“确保容量”这些变量,Matlab 创建了几个计数器变量,命名为i349、i350、...、i386、...i400。显然,Windows 编译器不喜欢这样。它抛出两个错误,说:
第 x 行:error: expected identifier or '(' before numeric constant
第 y 行:error: lvalue required as left operand of assignment
第 y+1 行:error: lvalue required as increment operand
这些都是通过手动选择其他变量名来解决的。虽然我可以使用一些脚本来自动执行此操作,但我宁愿避免使用它。
两个问题:
为什么这些变量名会导致编译器出现问题?
如何告诉 Matlab 不要生成具有这些名称的变量?
【问题讨论】:
-
我猜这个令牌是 MinGW 编译器保留的,可能与同名的the architecture 有关。
标签: c matlab gcc mingw matlab-coder