C에서 _tmain()과 main()의 차이점
C에서 표준 프로그램 진입점은 main()입니다. 다음 서명 중 하나:
int main(); int main(int argc, char* argv[]);
그러나 Microsoft는 다음과 같은 확장 기능을 도입했습니다. 두 번째 서명을 다음으로 대체하는 wmain():
int wmain(int argc, wchar_t* argv[]);
유니코드(UTF-16)와 멀티바이트 문자 집합 간의 전환을 쉽게 하기 위해 Microsoft는 유니코드가 활성화되면 _tmain()도 정의했습니다. wmain으로 컴파일되고 그렇지 않으면 main()으로 컴파일됩니다.
문자 간 차이 처리
예제에서 main()과 _tmain() 사이의 차이는 main()을 잘못 사용하여 발생합니다. wmain()은 wchar_t 인수를 허용하도록 설계되었지만 main()은 char을 기대합니다. 컴파일러는 main()에 대한 올바른 유형을 적용하는 데 느슨하기 때문에 프로그램은 wchar_t 문자열 배열을 char 문자열로 해석합니다.
UTF-16에서 ASCII 문자는 다음과 같은 바이트 쌍으로 표시됩니다. ASCII 값 뒤에 널 바이트가 옵니다. x86 CPU는 리틀 엔디안이므로 이러한 바이트가 교환됩니다. 따라서 null로 끝나는 char 문자열에서 프로그램은 각각 1바이트 길이의 일련의 문자열을 보게 됩니다.
Windows 프로그래밍 옵션
Windows 프로그래밍 작업에서는 세 가지 주요 옵션을 사용할 수 있습니다.
이러한 Microsoft 전용 확장은 C 표준을 따르지 않으므로 다른 플랫폼에서는 지원되지 않을 수 있다는 점에 유의하는 것이 중요합니다.
위 내용은 C Windows 프로그래밍에서 `main()`과 `_tmain()`의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!