Ошибка SWIG: синтаксическая ошибка на входе (1) - PullRequest
1 голос
/ 15 июня 2011

Я получаю синтаксическую ошибку в input (1) для этой строки кода, в C, когда я делаю:

swig -python myfile.i в консоли.

Это относится к следующему коду, в частности к последней строке этих typedefs.

typedef unsigned short WORD;    
typedef unsigned int DWORD;
typedef unsigned long long QWORD;
typedef unsigned char BYTE;     
typedef unsigned int bool; //<= THIS LINE OF CODE TRIGGERS THE ERROR.

Насколько я знаю, bool не определен в C, так что я бы подумал, что swig разрешит это без проблем. Я скомпилировал как c в VS 2010, и это было просто прекрасно.

Mark

1 Ответ

2 голосов
/ 15 июня 2011

C имеет тип bool (на самом деле макрос), но это функция C99, и вы должны включить stdbool.h, чтобы получить bool;у вас есть _Bool, если вы не включите stdbool.h.

VS2010 не поддерживает C99, он поддерживает только C89 (AFAIK), поэтому typedef будет отлично с этим работать.

Я предполагаю, что что-то куда-то затягивает stdbool.h, и это портит ваш typedef, как это будет выглядеть так:

typedef unsigned int _Bool;

, когда компилятор увидит это и компилятор победитэто совсем не так.

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