Смешивание Objective-C и C: Как использовать исходный файл C, в котором отсутствует заголовочный файл? - PullRequest
0 голосов
/ 11 декабря 2010

Я не хочу использовать какой-либо источник C в моем проекте Objective-c, но в источнике отсутствует файл заголовка. Я получаю предупреждение "неявное объявление функции" при сборке, однако приложение запускается нормально и работает до тех пор, пока я не попытаюсь вызвать одну из функций Си. Теперь, когда это может произойти сбой, что-то не так с аргументами, которые я передаю, я еще не исследовал это. Но:

Есть ли способ избавиться от предупреждения о сборке?

Я на правильном пути? Это означает, что источник C будет пригоден для использования даже без заголовочного файла.


Некоторый фон:

Я пытаюсь использовать динамическую C-библиотеку GPL в своем проекте Objective-c (iPhone). Не имея опыта работы с Си, сам код на С немного ниже, чтобы я мог эффективно его использовать. Однако C lib также содержит несколько примеров программ более высокого уровня, которые я могу понять, что они делают, и я думаю (надеюсь) также изменить их в соответствии с моими потребностями. Этот пример программы - это просто исходный файл, запускаемый из оболочки сценария оболочки. Нет заголовочного файла.

1 Ответ

3 голосов
/ 11 декабря 2010

Прежде всего, не существует такой вещи, как C класс .

Если вы имеете в виду просто вызов C функции , вы можете добавить прототипы функций вВаш код Objective-C.

Допустим, вам нужно вызвать функцию f, которая возвращает int и принимает параметр char, определенный в вашем файле .c.

В файл .m, в который вы будете вызывать функцию, добавьте следующую строку:

int f(char);

Вы избавитесь от неявного объявления функции .

В качестве альтернативы, вы можете написать все прототипы функций в собственном .h собственном файле на случай, если решите, что вам нужно использовать эти функции и в других модулях компиляции.

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