2016-07-20 17 views
1

ich Xcode bin mit wenig C Kommandozeilen-Tools zu entwickeln, und ich habe eine Header-Datei, die wie folgt aussieht:C Import #defines von Header-Datei

#define Bool unsigned char; 
#define YES ((Bool) 1); 
#define true ((Bool) 1); 
#define NO ((Bool) 0); 
#define false ((Bool) 0); 

In einer anderen C-Datei Ich bin der Import der Header-Datei wie so

#include "Definitions.h"

Jedes Mal, wenn ich Bool oder true oder false Xcode gibt mir die folgenden Warnungen:

Typspezifizierer fehlt, ist standardmäßig 'int'

Erklärung erklären nichts

Für eine Funktion wie folgt:

enter image description here

Wenn ich die include "Definitions.h" nehmen und Legen Sie einfach die Definitionen in die c-Datei, alle Warnungen verschwinden.

Was geht hier vor?

+0

Boolean-Typen sind normalerweise eine schlechte Idee. Verwende 'stdbool.h'. –

Antwort

5

Entfernen Sie alle Semikolons von Ihren #define Anweisungen!

Darüber hinaus müssen diese Typen nicht definiert werden. Sie sind bereits dort in <stdbool.h>, die Sie bool, true und false gibt.

+0

Ahh **** Ich bin ein Noob. Vielen Dank. –

+0

@RASS und Sie sollten 'typedef' für die Typdefinition verwenden, sollte' define' nicht verwenden – Nik