C bool타입의 형식 지정자를 알고 싶습니다

조회수 10841회

리눅스 커널 코드가 bool을 씁니다. 이래도 되는건가요? 에서 보면 ANSI C99부터는 _Bool이나 stdbool.h_Bool이 있다고 하는데 그럼 1, 0이 출력되는 게 아니라 true/false로 출력되게 하는 형식 지정자는 어디 있나요?

bool x = true;
printf("%B\n", x);

출력 : true

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    C는 bool타입을 지원 하지만, true/false를 출력해주는 형식 지정자는 없습니다. printf에서 bool의 형식 지정자는 보통 %d를 권장하고 있고, true/false로 출력하고 싶다면 삼항연산자 등을 써서 별도로 지정해 줘야 합니다

    bool x = true;
    printf("%d\n", x); // 1출력
    
    // true나 false를 출력하려면 다음 중 아무거나
    printf(x ? "true" : "false");
    //또는
    printf("%s", x ? "true" : "false");
    //또는
    fputs(x ? "true" : "false", stdout);
    

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.