2016-06-05 3 views
-3

У меня есть небольшой быстрый проект в XCode 6.2 на OS X 10.10, и к этому проекту был добавлен небольшой файл C, упрощено до:C не будет компилировать

#include <stdio.h> 
void function1(unsigned char buf) {} 
unsigned char abuf; 
function1(abuf); 

я не могу получить любую версию C для компиляции. Указанный выше код генерирует 2 ошибки: «Отсутствует спецификатор типа, по умолчанию -« int », и« Список параметров без типов разрешен только в определении функции »

Мое предположение заключается в том, что проект каким-то образом не настроен правильно для компиляции файла C, но я не могу понять, чего не хватает. (Обратите внимание, что в конечном итоге файл C будет использоваться для доступа к внешней библиотеке, а файл «project-Bridging-Header.h», который сейчас пуст, был сгенерирован.) Может ли кто-нибудь помочь?

+0

Функциональный вызов типа 'function1 (abuf);' должен быть в некоторой функции. – MikeCAT

+3

Попробуйте скомпилировать * действительный * C источник. – MikeCAT

+0

Что это: 'void function1 (unsigned char buf) {}'?! – user3078414

ответ

1

Это не действительный C, поэтому он не компилируется. Это не имеет ничего общего с Свифт. Вы объявляете функцию, вы объявляете внешнюю переменную, а затем, из ниоткуда, приходит то, что выглядит как вызов функции.

В C код может быть только частью реализации функции.

Смежные вопросы