문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 C언어/문법 (문단 편집) ==== TCHAR ==== Windows SDK에서 지원하는 호환성을 최대한 유지하면서 코드의 형태를 유지하기 위한 비표준 매크로이다. 컴파일러 설정에 따라서 MBSC 인코딩이나 와이드 캐릭터 (UCS-2) 인코딩 방식으로 해당 문자열을 인코딩하며 Windows에서만 사용되는 특성상 플랫폼 의존적인 자료형이다.[* 컴파일러의 확장이 아니다] [[Windows]]는 기본 로캘이 각 언어별로 설정되기 때문. 간단한 매크로 함수 선언을 통해서 Windows에서 유니코드(Windows에서 [[유니코드]]는 보통 UTF-16을 의미한다)를 지원하면서 호환성이 있는 코드를 작성할 수 있도록 한 개념이다. UNICODE 매크로가 활성화 되면 매크로로 TCHAR은 wchar_t로 선언되며, 선언되지 않으면 char로 선언되게 된다. _T(x) x 매크로도 마찬가지로 선언되면 L로, 선언되지 않으면 제거된다. {{{_T("...")}}} 리터럴을 사용하고 {{{tchar.h}}} 헤더를 include해야 한다. {{{#!syntax cpp #include #include #include int _tmain(int argc, TCHAR **argv) { TCHAR a[20]; SetConsoleTitle(_T("tchar test")); _tscanf(_T("%s"), a); _tprintf(_T("%s"), a); return 0; } }}} 위와 같은 코드는 {{{UNICODE}}} 가 선언되어 있지 않으면 프리프로세서에서 다음과 같이 변환된다. {{{#!syntax cpp #include #include #include int main(int argc, char **argv) { char a[20]; SetConsoleTitleA("tchar test"); scanf("%s", a); printf("%s", a); return 0; } }}} 그리고 {{{UNICODE}}}가 선언되면 다음과 같이 변환된다. {{{#!syntax cpp #include #include #include int wmain(int argc, wchar_t **argv) { wchar_t a[20]; SetConsoleTitleW(L"tchar test"); wscanf(L"%s", a); wprintf(L"%s", a); return 0; } }}}저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기