2011-03-12 5 views
9

예, 이것은 ++ 유효 C입니다 :및 및 또는 &&, ||,! 대 아닙니다.

if (false or (true and not false)) ... 

Among others 같은 bitandxor있다. C에서 그들은 매크로 였지만 지금은 are keywords! 당신도 그들을 과부하 수 있습니다! 그럼 왜 누군가가 이제까지 가르치거나 같은 것을 작성합니다

if (false || (true && !(false))) ... 

누구도이 그들을 사용하지 않습니다를?

+0

"C에서는 일부 C 프로그램이 그러한 매크로를 정의했을 수도 있지만 매크로는"아니요, C에서는 매크로가 아닙니다 "라고했습니다. Adn 이것은 진짜 질문이 아니며, 논쟁적이고 논쟁의 여지가 있습니다 - FAQ를보십시오. –

+0

가능한 중복 [이름이 지정된 부울 연산자를 사용하는 사람이 있습니까?] (http://stackoverflow.com/questions/1103313/is-anybody-using-the-named-boolean-operators) [어떤 C++ 논리 연산자를 사용합니까? 및/또는 ilk 또는 C 스타일 연산자? 왜?] (http://stackoverflow.com/questions/1103313/is-anybody-using-the-named-boolean-operators); [C++ alternative tokens?] (http://stackoverflow.com/questions/555505/c-alternative-tokens) [gcc에서 "and"/ "or"or "boolean operator usage에 대한 지원을 끌 수 있습니까?] (http://stackoverflow.com/questions/1069352) –

+1

@ 짐 발터 :하지만 C에서는, 그들은 iso646.h에 정의 된 매크로입니다. –

답변

6

추가 헤더 파일을 포함하지 않고 혼합 된 C/C++ 코드를 허용하지 않으므로 프로그래머에게는 덜 알려져 있으며 and이 단락 또는 비트 버전인지 여부가 즉시 명확하지 않습니다.

+2

그래,'&'와'&&'사이에 어떤 연산자가'and'와'bitand' 사이보다 비트 연산자라는 것을 쉽게 추측 할 수 있습니다. 'not_eq'는 릴레이션이지만'or_eq'는 복합 할당 연산자입니다. 반어는 비트입니다. –

2

왜 아무도 없습니까? 어떤 사람들은 그것을 사용합니다. 다른 사람들은 기호가 단어보다 읽기 쉽다고 생각합니다.

1

사람들은 단지 그들에 대해 모른다 (나는 지금까지는하지 않았다).

2

Visual C++에서 지원하지 않습니다.

+0

Microsoft Visual C++에서는 이러한 식별자를 사용하기 위해 을 포함시켜 기본 언어로되어 있어야하는 것에 쓸모없는 종속성을 추가로 요구합니다. (또는해서는 안되지만 중간에 앉아서는 안됩니다.) – Tic