список ожидаемых конкретных спецификаторов перед функцией и ожидаемый =,,,,;;, asm или __attribute__ перед функцией - PullRequest
0 голосов
/ 19 декабря 2009

Я программирую на Objective-C, но я хотел бы написать функцию c для повышения производительности. Я написал код ниже этого поста, но компиляция продолжает возвращаться со следующей ошибкой:

ошибка: ожидаемый список специфических квалификаторов перед 'bool'

ошибка: ожидается '=', ',', ';', 'asm' или ' атрибут ' перед 'addToBoolArray'

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 ]

4 голосов
/ 19 декабря 2009

Нет типа bool в C89 или Objective-C.

Для простого C89 обычно используется int.

Для C99 вы можете сделать:

#include <stdbool.h>

Для Objective-C, по-видимому, есть typedef для BOOL, а константы TRUE и FALSE - это NSObject.h.

1 голос
/ 19 декабря 2009

Если вы пытаетесь повысить производительность, вы можете использовать битовый вектор вместо массива bool s…

1 голос
/ 19 декабря 2009

Вам, вероятно, следует использовать BOOL из , если вы хотите использовать (тип c99) bool, incude

Вам также не хватает; после объявления addToBoolArray в вашем заголовочном файле.

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