wchar_t



  • Hi,

    was ist wchar_t wofür gibt es ihn und wie ist er definier? ist die handhabung wie char* ? 😮



  • Schau mal in deine Compilerhilfe
    Da steht dann so was

    wchar_t
    The wchar_t keyword designates a wide-character type.

    wchar_t identifier-name;
    Parameters
    identifier-name
    Specifies a valid MIDL identifier. Valid MIDL identifiers consist of up to 31 alphanumeric and/or underscore characters and must start with an alphabetic or underscore character.
    Remarks
    The wchar_t type is defined by MIDL as an unsigned short (16-bit) data object.

    The MIDL compiler allows redefinition of wchar_t, but only if it is consistent with the preceding definition.

    The wide-character type is one of the predefined types of MIDL. The wide-character type can appear as a type specifier in const declarations, typedef declarations, general declarations, and function declarators (as a function return–type specifier and as a parameter-type specifier). For the context in which type specifiers appear, see Interface Definition (IDL) File.

    The [string] attribute can be applied to a pointer or array of type wchar_t.

    Use the L character before a character or a string constant to designate the wide character–type constant.

    See Also
    MIDL Base Types, char, const, Interface Definition (IDL) File, short, typedef, unsigned



  • hm super und wie ist das dingen nun definiert? Mit der MSDN hab ich net viel am hut, ich kann se net abhaben. da MS sogar für ihr NET die STL verwurschtelt hat. 😡



  • Heiser Typ

    Text lesen

    The wchar_t type is defined by MIDL as an unsigned short (16-bit) data object.

    😮 Weißt du überhaupt was die MSDN ist???



  • @PAD
    Angenommen du weißt, was MIDL ist (vielleicht meinst du ja ein anderes MIDL als ich). Könntest du mir bitte mal erklären, was das mit *Standard*-C++ zu tun hat?

    In Standard-C++ ist wchar_t kein unsigned short sondern schlicht und einfach ein eigener Datentyp. Ein echtes Schlüsselwort. So voll first class mäßig.
    D.h. z.B. folgendes geht:

    void func(wchar_t);
    void func(unsigned short);
    
    int main()
    {
    func(L'a');
    }
    

    wchar_t ist vorgesehen für Zeichen, die nicht in ein einziges Byte passen. Also für erweiterte Zeichensätze.
    Die Größe eines wchar_t ist implementation-defined.



  • Danke für die Verbesserung
    Ich habe ganz einfach bei mir diesen DatenTyp in den Compiler eingegeben und mir mit der Hilfe die Definiton geben lassen.
    Das ist dann dabei herausgekommen,

    Im "Struppi" habe ich allerdings nicht nachgelesen. (Im Nachhinein leider)



  • @Hume: Ich versuche seit langer Zeit heraus zu bekommen, wofür eigentlich dieses _t steht. Steht das für type, template oder text? Ich habe von der WinAPI-Programmierung her analysierend auf t wie "text" getippt, konnte mir bisher keiner sicher sagen. Petzold hat mir leider nicht geantwortet. 😃
    Googlen brachte leider auch nichts. Durchsuchen des C++-Standards nach "wchar_t" ergab auch kein Ergebnis, obwohl dort immer der Begriff type (manchmal auch template) in der Nähe war, nie text. In WinAPI gibt es im Zusammenhang mit Unicode die Macros TEXT(...) und _T(...), die auf text hindeuten.



  • Hallo,

    PAD, es heißt nicht 'heißer Typ' sondern 'heißer Tip',



  • Ich versuche seit langer Zeit heraus zu bekommen, wofür eigentlich dieses _t steht.

    Das _t steht für typedef bzw. type. wchar_t gab es bereits in C. Dort war es allerdings kein eingebauter Typ sondern ein implementationsspezifischer typedef aus <stddef.h>. Und solche Standard-Typedefs tragen die Endung _t.

    In C++ hat man den Namen dann einfach übernommen.



  • Danke!!! 🙂 👍


Anmelden zum Antworten