2016-07-05 2 views
0

У меня возникла проблема с PIC32 Compiler v2.02.error: expected '=', ',', ';', 'asm' или '__attribute __' до [function]

Компилятор определяет тип BOOL следующим образом:

typedef enum _BOOL { FALSE = 0, TRUE } BOOL;  // BOOL Type 

Я хочу вернуть одно из перечисленных значений в Fuction так:

BOOL 
MyFunction(void) 
{ 
    if(PortAvailable()) 
    { 
    return TRUE; 
    } 
    else 
    { 
    return FALSE; 
    } 
} 

, когда я компилирую мой код я получаю это ошибка, связанная с «MyFunction»:

error: expected '=', ',', ';', 'asm' or '__attribute__' before 'MyFunction' 

Я обновляю свой компилятор с версии 1 .05 до версии 2.02, где я создал свой собственный typedef BOOL. Код работал отлично, прежде чем пытаться использовать версию 2.02. (Да, я удалил свой код из BOOL из кода).

Что-то я нахожу очень странным, если я delcare функцию следующим образом:

enum BOOL 
MyFunction(void) 
{ 
    if(PortAvailable()) 
    { 
    return TRUE; 
    } 
    else 
    { 
    return FALSE; 
    } 
} 

компилятор не дает мне ошибку выше. Правильно ли я использую перечисляемый BOOL или кто-нибудь знает о шаге, который мне не хватает?

+1

Что происходит непосредственно перед определением 'MyFunction' в коде? – jwodder

+0

Другая функция, но с возвратом void. ** void Инициализировать (void); ** Я забыл упомянуть, что эти ошибки всегда относятся к файлу заголовка, а не к основному c-файлу. –

+2

Если ошибки возникают в файле заголовка, они не будут появляться в коде, который вы здесь показали, не так ли? Отправьте фактический код, который вызывает ошибку. – jwodder

ответ

0

Еще раз спасибо за то, что нашли время, чтобы помочь мне справиться с этой проблемой. Я был в состоянии определить, что с новой версией компилятора Microchip C32, v2.02, я должен заявить:

#include <plib.h> 

, которая является стандартной библиотекой PIC32 в файлах, которые используют «новую» BOOL typdef. С более старой версией компилятора он в основном оставил пользователю создать свой собственный typedeff из BOOL (что я и сделал), но как только я удалил свой typedeff из кода, я не добавил заголовок appropriet, чтобы объявить перечисление.

Ошибка новичков с моей стороны, но я надеюсь, что этот ответ поможет другим людям, которые работают по аналогичной проблеме.

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