Я столкнулся с проблемой в Xcode с ключевым словом operator
. У меня это в файле заголовка (.h), но Xcode распознает его как ключевое слово из-за перекрытия оператора на C++, хотя я устанавливаю тип файла как заголовок C по умолчанию, а не заголовок C++. Код, который я пытаюсь собрать все написано в C и строка кода у меня возникают проблемы, как этоключевое слово оператора в Xcode
struct foo {
int a;
int b;
...
char operator[80];
}
а сейчас я застрял с этим а. Причина того, что оператор будет использоваться как имя переменной, теперь не является областью применения, потому что это код перекрестной платиформы, который я не могу изменить и можно компилировать во многих других платах для устройств низкого уровня.
Любая помощь будет оценена по достоинству.
Я не понимаю, почему изменение имени переменной для другой вещи было бы проблемой. Если он компилируется сейчас, он должен скомпилироваться с измененным именем, даже для устройств низкого уровня. – EmilioPelaez
Проблема в том, что я несу ответственность за перенос этого на iPhone, и поэтому есть некоторые изменения, которые я должен внести в общие файлы, чтобы он мог компилироваться, и поэтому мне пришлось бы изменить это определение, #ifdef IPHONEOS наверху и замените его в каждом файле с помощью этой структуры. Я не поддерживаю этот код, это еще одна команда, поэтому они посоветовали мне не касаться логики и имен переменных, только включает в себя и вызовы собственных функций. –
Можете ли вы показать нам сообщение об ошибке? Это из компилятора или из среды IDE? (Я не использовал Xcode, поэтому не предполагайте, что я знаю, о чем говорю.) Если ваш код компилируется как C++, а не C, могут возникнуть другие тонкие проблемы; существуют конструкции, которые являются допустимыми C и действительными C++, но с другой семантикой (а 'operator' - не единственное ключевое слово C++). Выяснить, как скомпилировать C, намного лучше, чем работать с проблемой, изменяя идентификатор. –