C ++ '03 Standard 2.3 / 1에 따르면 :
다른 처리가 수행되기 전에 다음 세 문자 중 하나 ( "trigraph sequence") 중 하나가 표 1에 표시된 단일 문자로 바뀝니다.
---------------------------------------------------------------------------- | trigraph | replacement | trigraph | replacement | trigraph | replacement | ---------------------------------------------------------------------------- | ??= | # | ??( | [ | ??< | { | | ??/ | \ | ??) | ] | ??> | } | | ??’ | ˆ | ??! | | | ??- | ˜ | ----------------------------------------------------------------------------
실제로 는 문자 로 대체되는 3 중 시퀀스 이기 때문에 코드 printf( "What??!\n" );
가 인쇄 됩니다.What|
??!
|
내 질문은 trigraphs를 사용하는 목적은 무엇입니까? trigraphs를 사용하면 실질적인 이점이 있습니까?
UPD : 대답에 따르면 일부 유럽 키보드에는 문장 부호 문자가 모두 없으므로 미국 이외의 프로그래머는 일상 생활에서 3 점을 사용해야합니까?
UPD2 : Visual Studio 2010에는 기본적으로 3 가지 그래프 지원이 해제되어 있습니다.