Я компиляция моего кода игры двигателя на VS2015 и Xcode с помощью GCC
Я использовал много компиляторов для моего кода и только GCC показывает предупреждение:. «Предупреждение: отсутствует завершающий» символ»в ложном состоянии
warning : missing terminating " character
кода, как следующее:
#if 1
...
#else
asm __volatile__("
some assembly code
...
":::);
#endif
Я знаю недавняя НКА не принимает новые строки в строке, но я не знаю, почему НКУ препроцессор извергает предупреждение для ложного блока
Я знаю, что мой Wr. iting стиль встроенной сборки старый, но они находятся в ложном условном блоке. Я не хочу трогать их, потому что их так много.
Как я могу избежать этого предупреждения в ложном условном блоке, кроме предупреждения всех предупреждений?
Редактировать:
Я скомпилировал свой код с помощью Armcc, VC++ (2005,2008,2012,2013,2015) и clang. Они не показывают такого предупреждения, только GCC.
Если предупреждения для кода в условном блоке TRUE, я исправлю их. Но это предупреждения для условных блоков FALSE, которые не должны оцениваться.
Вы видели это [ответ] (http://stackoverflow.com/a/10205777/5588347)? –
Возможный дубликат [странное сообщение об ошибке для встроенной сборки GCC] (http://stackoverflow.com/questions/10205691/strange-error-message-about-gcc-inline-assembly) – Carpetsmoker
@Carpetsmoker: вопрос не о " отсутствующий конец символа "(OP отлично знает, что он отсутствует), а скорее о том, почему это происходит в, казалось бы, * отключенном * расширении кода. – AnT