2010-08-12 4 views

답변

5

C가 bool 유형이없는 : 나는 다음 그러나 그 오류를 제공했습니다. false의 경우 0을 사용하고 true의 경우 1을 사용하여 int을 대신 사용할 수 있습니다.

+0

나는 C99가 C라고 생각했다. –

+0

C99에는 bool이있다. #include ninjalj

+0

예, C에는 bool 유형이 있습니다. 그것은 _Bool이고 #include 을 사용하여 사용할 수 있습니다. C99 _IS_ C를 기억하십시오. –

-2

C99에는 bool 유형이 있습니다. 하지만 C++로 코드를 작성할 수없는 이유가 궁금합니다. C++의 모든 고급 OOP 기능을 사용할 필요는 없습니다. "C 스타일"코드를 작성하고 C++ 컴파일러로 컴파일 할 수 있습니다.

+0

+1. 현명한 대답. C++ 컴파일러가 C++ 컴파일러에서 허용하지 않는 C 컴파일러는 거의 없으며 C++ 컴파일러는 C (예 : bool)와 같은 깔끔한 기능을 갖추고 있으며 C보다 더 엄격한 유형 안전성을 제공합니다. 그리고 그것은 멋진 C++ 트릭을 배우는 좋은 방법이 될 수 있습니다. (C 구조체가 생성자를 통해 초기화되는 것과 같이 ...) – paercebal

+4

C++은 C의 대체물이 아닙니다. 가변 길이 배열, 가변 매크로, 지정된 snprintf를 참조하십시오. 초기화합니다. –

+3

당신이 새로운 사람이기 때문에 나는 downvote하지 않을 것이지만 일반적으로 C 언어에서 C++ 언어로 자신의 언어를 바꾸라고 제안해서는 안됩니다. – Potatoswatter

0

일반적으로 unsigned char은 int보다 bool에 더 적합합니다. 특히 1000 개의 배열이있는 경우에는 더 좋습니다. 구현은 부호없는 char의 크기와 배열의 압축 방식에 따라 달라 지지만.

+0

아니요. 보통 더 느리고 결코 빠릅니다. –

+0

일반적으로 액세스 속도는 일반적으로 느리지 만 액세스 속도의 중요성은 어레이가 액세스되는 빈도와 방법에 따라 다릅니다. 메모리 절약이 훨씬 더 중요 할 수 있습니다. CPU가 제한적인지 또는 메모리 제약이 있는지 여부를 고려해야합니다. 내 생각 엔 액세스 속도의 차이가 눈에 띄지는 않지만 어레이가 차지하는 추가 메모리가 발견 될 가능성이 높습니다. 그것은 모두 사용 시나리오에 따라 다릅니다. – david

2

유형이 사용자 환경에 정의되어 있지 않으면 자신의 유형을 정의 할 수 있습니다 (예 : bool).

typedef enum {false,true} bool; 
관련 문제