2009-12-19 5 views
0

Objective-C에서 프로그래밍 중이지만 성능을 높이기 위해 ac 함수를 작성하십시오. 이 게시물 아래의 코드를 작성했지만 컴파일 다음과 같은 오류와 함께 돌아 오는 유지 :'function'앞에 예상 특정 한정자 목록 및 '=', ',', ';', 'asm'또는 '__attribute__'before 'function'

error: expected specific-qualifier-list before 'bool'

error: expected '=', ',', ';', 'asm' or 'attribute' before '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; 
} 

나 ' 이 오류에 대한 많은 포럼 스레드를 찾았지만 그 중 누구도 내 문제를 해결하지 못하는 것 같습니다. 어떤 아이디어?

답변

4

C89 또는 목표 - C에는 bool 유형 없습니다 감사드립니다.

보통 C89의 경우 일반적으로 int이 사용됩니다.

C99를 들어, 당신은 할 수 있습니다 :

오브젝티브 C를 들어
#include <stdbool.h> 

는, 거기 BOOL에 대한 형식 정의, 그리고 상수 TRUEFALSE 것 같다, NSObject.h이다. 당신은 부울합니다 (C99 타입)을 사용하려면

+0

어떤 헤더를 #include를 할 필요없이 작동하는 미리 정의 된 유형 '_Bool'이있다. – pmg

+0

예, 물론 'typedef _Bool bool'입니다. 실제로, 아무도'_Complex'를 직접 사용하지 않는 것처럼,'_Bool'을 직접 사용하는 사람은 본 적이 없습니다. 이렇게하는 이유 중 하나는 이미 널리 사용 된 일부 키워드와 충돌 할 수있는 새 키워드를 사용하지 않는 것입니다. –

1

당신은 아마 <가 stdboolh >

당신은 또한 누락 incude, <objc.h>에서 BOOL을 사용한다; 헤더 파일에 addToBoolArray가 선언 된 후. C99에서

1

성능을 향상하려는 경우, 당신은 대신 bool의 배열의 bit vector을 사용할 수 있습니다 ...

관련 문제