2011-11-07 2 views
2

간단한 스택 코드를 작성하려고하는데이 코드를 데이터 구조 책에서 가져 오지만 컴파일하려고하면 오류가 발생합니다. 이 코드에 대한 예를 들어 Visual Studio 2010에서 C의 반환 된 형식이 잘못되었습니다.

bool pushStack (STACK* stack, void* dataInPtr) 
{ 
    STACK_NODE* newPtr; 

    newPtr = (STACK_NODE*) malloc(sizeof(STACK_NODE)); 
    if(!newPtr) 
     return FALSE; 

    newPtr->dataPtr = dataInPtr; 

    newPtr->link = stack->top; 
    stack->top = newPtr; 

    (stack->count)++; 
    return TRUE; 
} 

는, 컴파일러는

Error 1 error C2061: syntax error : identifier 'pushStack' 
Error 2 error C2059: syntax error : ';' 
Error 3 error C2059: syntax error : 'type' 

우리가 어떻게이 문제를 해결할 수 있다고? TRUE를 true로 변경하려고 시도했지만 작동하지 않습니다.

답변

4

C에는 bool 데이터 형식이 없습니다 (C++ 않습니다.). 함수가 int을 반환하고 TRUE1, FALSE0을 반환하십시오. 또는 #DEFINE TRUE 1#DEFINE FALSE 0.

+0

정말인가요? 왜냐하면 저는 데이터 구조를 사용하고 있습니다 : C, Second Edition 서적으로 Pseudocode 접근법을 사용했고 그들은 bool 유형으로 코드를 작성합니다 : S –

+1

C99은 그렇지만 VS2010이 이것을 사용하고있을 것 같지 않습니다. 책의 저자가 가독성을 위해 의사 코드로 'bool'을 사용하고 있음을 발견했습니다. 아니면 C99에 글을 쓸 수도 있습니다. 어느 쪽이든, C에는 "원시"bool 유형이 없습니다. –

+0

답장을 보내 주셔서 감사합니다. 코드를 편집합니다. :) –

관련 문제