Как решить проблему #define для кросс-платформенной разработки на Android и IOS? - PullRequest
1 голос
/ 04 ноября 2011

Я пытаюсь сделать кроссплатформенную разработку для Android и IOS.Я пишу код на C ++, но когда я начинаю, я вижу, что xcode вставляет в заголовки следующее #define:

#ifndef tutorial_FloatMatrix_h
#define tutorial_FloatMatrix_h

#endif

Tutorial - это название проекта, а FloatMatrix.h название заголовка.Это не похоже, что это будет портативным.Обычно я не вижу имя проекта, добавленное к имени заголовка в таком виде #define.Есть ли способ заставить намерение этого #define работать в iOS и Android?Кроме того, что это #define пытается выполнить, и есть ли у него имя (то есть, что я буду гуглить)?

Ответы [ 2 ]

2 голосов
/ 04 ноября 2011

Почему бы не быть портативным? Пока tutorial_FloatMatrix_h является уникальным именем, оно должно прекрасно работать с любым компилятором C / C ++. Кроме того, определение называется защитой заголовка, его целью является обеспечение того, чтобы несколько копий заголовка не были включены в одну единицу перевода (например, файл .cpp).

1 голос
/ 04 ноября 2011

Это обычный способ ограничить включение нескольких заголовков из исходных кодов языка C. Эти коды должны быть переносимы на любой компилятор C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...