2010-06-01 30 views
7

Welche Unterschiede bestehen zwischen den beiden im Windows-Header tchar.h definierten Symbolen TCHAR und _TCHAR? Erklären Sie mit Beispielen. Beschreiben Sie kurz Szenarien, in denen Sie TCHAR anstelle von _TCHAR in Ihrem Code verwenden würden. (10 Punkte)Differenz zwischen TCHAR und _TCHAR

+3

Warum hört sich Ihre Frage nach Hausaufgaben an? Kannst du dir nicht die Zeit nehmen, deine Prüfung anders zu formulieren und sie persönlicher klingen zu lassen? –

+6

Ich nahm tatsächlich extra Zeit und ging mir aus dem Weg, damit es wie Hausaufgaben klang. Ermüdet, all diese kleinen Eigenheiten in Windows-Kopfzeilen ohne Reim oder Grund zu sehen. –

+1

'tchar.h' ist nicht Teil des Windows SDK, sondern Teil von Microsoft CRT ... –

Antwort

7

gefunden Ihre Antwort hier:

MSDN Forums >> Visual Studio Developer Center >> TCHAR vs _TCHAR

TCHAR und _TCHAR identisch ist, obwohl seit TCHAR keinen Unterstrich, ist Microsoft nicht erlaubt vorbehalten es als Schlüsselwort (stellen Sie sich vor, wenn Sie eine Variable namens TCHAR hätten. Denken Sie, was passieren würde). Daher wird TCHAR nicht #definiert, wenn die Spracherweiterungen deaktiviert sind (/ Za).

TCHAR wird in winnt.h definiert (was Sie erhalten, wenn Sie # # enthalten), und auch tchar.h unter/Ze. _TCHAR ist nur in tchar.h verfügbar (wobei # auch _TSCHAR und _TUCHAR definiert). Dies sind unsignierte/signierte Varianten des normalen TCHAR-Datentyps.

9

Zusätzlich zu dem, was @RussC sagte, ist TCHAR durch die Win32-API verwendet und basiert auf der UNICODE definieren, während _TCHAR von der C-Laufzeit verwendet wird, und basiert auf der _UNICODE stattdessen definieren. UNICODE und _UNICODE werden normalerweise zusammen definiert/weggelassen, wodurch TCHAR und _TCHAR austauschbar gemacht werden, aber das ist keine Voraussetzung. Sie sind semantisch getrennt, um von verschiedenen Frameworks verwendet zu werden.

Verwandte Themen