6

ブール値としてreturn型の関数を作成しようとしています...プログラムの構文は正しいようですが、コンパイラーがエラーを出します...。

私がインクルードしたヘッダーファイルは次のとおりです。

#include<stdio.h>
#include<stdlib.h>

私が作成した関数は次のとおりです。

34.bool checknull(struct node* node){
35.    if ( node != NULL )
36.        return TRUE;
37.       
38.    return false;
39.}

コンパイル時に取得するのは

bininsertion.c:34:1: error: unknown type name ‘bool’
bininsertion.c: In function ‘checknull’:
bininsertion.c:36:10: error: ‘TRUE’ undeclared (first use in this function)
bininsertion.c:36:10: note: each undeclared identifier is reported only once for each  function it appears in
bininsertion.c:38:9: error: ‘false’ undeclared (first use in this function)

小文字と大文字の両方で「TRUE、false」を試しましたが、機能しないようです...

4

3 に答える 3

21

必要に<stdbool.h>応じて、、を含める必要booltrueありfalseます。またtrue、ではなく、TRUEです。


含めたくない場合はstdbool.h、少し醜いものを使用できます_Bool

于 2013-03-03T08:29:43.557 に答える
-1

元の回答

cstdioとcstdlibを含めてみてください。違いはないかもしれませんが、コンパイラでもこれらの奇妙なエラーに気づいています。以前は機能していたものが機能しなくなりました

編集

Cでは、falseは0で表され、trueはゼロ以外のもので表されます。

本質的に、あなたはこのようにあなた自身のboolデータ型を転がすことができます

typedef enum {false, true} bool;

そうすれば、すでにアプリにあるのと同じように使用できます。

stdbool.h列挙型の提案に似たものを含める必要があるものを含めることもできます

于 2013-03-03T08:32:23.727 に答える
-1

boolはデータ型ではありません..VisualStudioで
正常に動作します..Microsoft固有のものを引き起こします..
含めるだけstdbool.hで正常に動作します:)

于 2013-03-03T10:59:09.107 に答える