在'function'之前预期的特定限定符列表,在'function'之前预期'=',',',';','asm'或'__attribute__'

时间:2009-12-19 00:29:58

标签: c objective-c xcode

我在Objective-C编程,但我想编写一个c函数来提高性能。我已经在这篇文章下面编写了代码,但编译仍然会出现以下错误:

  

错误:在'bool'之前预期的特定限定符列表

     

错误:在'addToBoolArray'之前预期'=',',',';','asm'或'属性'

structs.h:

typedef struct boolArray{
bool *array;
int count;
} boolArray;

bool addToBoolArray(boolArray *bArray, bool newBool)

structs.c:

#import "structs.h"

bool addToBoolArray(boolArray *bArray, bool newBool)
{
if(bArray->count > 0){
    bArray->array = realloc(bArray->array,(bArray->count+1)*sizeof(bool));
else{
    bArray->array = (bool *)malloc(sizeof(bool));
}

if(bArray->array == NULL)
    return false;

bArray->array[bArray->count] = newBool;
bArray->count++;

return true;
}

我发现了很多关于此错误的论坛帖子,但似乎没有一个解决我的问题。有什么想法吗?

谢谢

3 个答案:

答案 0 :(得分:4)

C89或Objective-C中没有bool类型。

对于普通C89,通常使用int

对于C99,你可以这样做:

#include <stdbool.h>

对于Objective-C,似乎BOOL有一个typedef,而常量TRUEFALSE是NSObject.h。

答案 1 :(得分:1)

您应该使用&lt; objc.h&gt;中的BOOL。 ,如果你想使用(c99型)bool,incude&lt; stdboolh&gt;

你也错过了;在头文件中声明addToBoolArray之后。

答案 2 :(得分:1)

如果您尝试提高效果,可能需要使用bit vector代替bool的数组......