2011-11-29 5 views
0

내가 예를 들어, 전역 배열을 정의하기위한 비 ASCII 문자를 사용하는 경우 :글로벌 C 배열

const char table[] = {[L'č'] = 'c', ...}; 

그래서 C는 내가 로케일 변경 한 다음 그 인덱스를 통해 배열에 액세스 상황을 처리? 어떻게 컴파일됩니까? 'č'은 다른 인코딩에서 다른 값을 갖고 있기 때문입니다.

답변

1

컴파일러는 소스 코드의 문자를 소스 코드 인코딩에서 컴파일시 선택되는 실행 와이드 문자 세트로 변환해야합니다. 값은 해당 문자가 해당 인코딩에있는 정수 값을 갖는 상수가됩니다. setlocale()으로 전화를 걸어도 값에 아무런 영향을 미치지 않습니다.