#c #c #extern
#c #c #внешний
Вопрос:
Я новичок в C / C , так что это может быть глупый вопрос, у меня следующая проблема, у меня есть метод в библиотеке c , который экспортируется с использованием extern ‘C’, и он вызывается другим методом из другого файла c. Итак, мне понадобились некоторые структуры в коде c , поэтому «разумным» решением было просто добавить структуры в файл .h первого класса и импортировать его. Когда я это сделал, произошла самая странная вещь. Код C, который работал нормально, сломался, сказав три глупости (обратите внимание, что структуры были просто перенесены из кода в заголовок). Итак, у меня есть 3 экземпляра, ошибки чтения, говорящие:
- Ожидается; перед * token;
- Iso C запрещает объявление ‘someclassname’ без типа
- не удалось разрешить тип ‘someclassname’
Есть идеи?
Комментарии:
1. Покажите нам код, сообщение об ошибке и команду компилятора.
2. хммм … это звучит как случай «опубликовать свой код»
3. Похоже, что класс, который вы пытаетесь использовать, не включен в файл (или заголовок). Вам нужно будет либо включить правильный файл, либо указать прямое объявление (например, class UnresolvedClassName;). Но покажите нам код.
4. Если это так
ISO C forbids declaration of ...
, то зачемc
помечать?5. Писать исходные файлы на нескольких языках сложно . Я предлагаю вам придерживаться одного языка для каждого исходного файла.
Ответ №1:
Компилятор считает, что «someclassname» — это имя переменной. Вы написали что-то вроде
Employee* newguy = foo();
И компилятор думает, что вы дали имя необъявленной переменной, Employee, жаловался на это, жаловался, что a * не идет после имени переменной и так далее.
Посмотрите, где, по вашему мнению, вы объясняете, что такое «someclassname», потому что компилятор его не получает.
ps: опубликуйте свой код!