Я генерирую код для функции с несколькими массивами переменного размера. Код должен быть скомпилирован как на linux (с g cc), так и на 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 не генерировать переменные с этими именами?