C를 사용할 때 프로그램에 main() 또는 _tmain()을 사용할 수 있습니다. 기입. 둘 다 비슷한 목적을 수행하지만 인수 처리 방식을 바꾸는 중요한 차이점이 있습니다.
C 표준에 따르면 main은 프로그램의 지정된 진입점입니다. 이는 두 가지 서명 중 하나를 준수합니다:
int main(); int main(int argc, char* argv[]);
여기서 argc는 명령줄 인수의 수를 나타내고 argv는 인수를 포함하는 문자 배열의 배열입니다.
_tmain은 유니코드 간의 전환을 단순화하는 Microsoft 전용 확장입니다. (UTF-16) 및 멀티바이트 문자 세트. 유니코드가 활성화되면 _tmain은 wmain으로 컴파일되고 그렇지 않으면 main으로 컴파일됩니다.
이 문제는 _tmain 함수가 제대로 정의되지 않았기 때문에 발생합니다. Wmain은 char 인수가 아닌 wchar_t 인수를 허용하도록 설계되었습니다. 컴파일러는 main에 대해 이 규칙을 적용하지 않으므로 wchar_t 문자열 배열이 main 함수에 전달되어 이를 char 문자열로 해석합니다.
UTF-16, 유니코드가 활성화된 Windows에서 사용되는 문자 집합 , ASCII 문자를 바이트 쌍으로 나타냅니다. 그 뒤에 ASCII 값이 옵니다. 그러나 little-endian 바이트 순서를 사용하는 x86 CPU에서는 순서가 반대입니다. 이는 char 문자열에서 문자열이 null 바이트로 끝나 프로그램이 단일 바이트 문자열을 식별하도록 유도한다는 의미입니다.
Windows 프로그래밍을 시작할 때 직면하게 되는 문제는 다음과 같습니다. 여러 가지 선택:
_tmain 및 기본 주소 프로그램 항목은 C에 있지만 _tmain은 유니코드를 처리하는 Microsoft 확장입니다. 인수를 처리할 때 _tmain에는 wchar_t가 필요하고 main은 char로 작동합니다. C 애플리케이션을 원활하게 실행하려면 이러한 차이점을 이해하는 것이 중요합니다.
위 내용은 명령줄 인수와 관련하여 C의 `main()`과 `_tmain()`의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!