Как выбрать между компиляцией файла сборки ARM, если устройство iOS, и использованием обычного C, если симулятор iOS - PullRequest
2 голосов
/ 12 августа 2011

В одном из проектов у меня есть файл, написанный на сборке ARM, который использует NEON для оптимизации вычислений, которые я делаю.У меня также есть файл, который делает то же самое, за исключением того, что он написан на C. В настоящее время я просто закомментирую функции C, которые определяются в сборке, и просто добавляю

extern void myFunction();

в файл C,То, что я хотел бы сделать, это иметь в файле C

#ifdef device
extern void myFunction();
#else
void myFunction() {
   /* code here */
}
#endif

Мне также нужно что-то подобное в файле сборки, но я не уверен, как сделать директивы препроцессора в сборке ARM.

Итак, чтобы подвести итог всего этого, я ищу определение препроцессора, которое говорит мне, для какого устройства я собираю и как использовать директивы препроцессора в сборке.

1 Ответ

3 голосов
/ 12 августа 2011

В вашем файле C:

#if defined __arm__
extern void myFunction();
#else
void myFunction() {
   /* code here */
}
#endif

В вашем файле сборки:

#if defined __arm__
/* code here */
#endif

(Xcode применяет препроцессор C также к файлам .s).

...