Largement. C définit wchar_t comme typedef mais dans Unix, il est généralement de 4 octets (donc généralement pas court) et dans Windows 2 de sorte qu'il peut être courte.
Sous C++, il est unique dans ce type char ou intde sorte que vous pouvez légalement surcharge void foo(short x) et void foo(wchar_t x)
14
Pour quelqu'un d'autre qui peut venir à travers cette réponse parce que les appels de fonction dans votre projet Visual Studio ne sera pas le lien, malgré les deux parties de prendre wchar_t (ou d'un type comparable, comme LPCTSTR avec UNICODE #défini), et lorsque vous DUMPBIN de la bibliothèque, les exportations de la fonction prend const unsigned short *sachez que VS permet d'éteindre les wchar_t comme un type. Si quelqu'un change ce dans une bibliothèque, et vous ne frappez pas le même commutateur de compilateur dans votre projet, il ne sera pas le lien.
Cette option peut être modifiée en vertu de "Project Properties>C/C++/Langue/Traiter les WChar_t comme Builtin type", il peut aussi être modifié via le "/Zc" option.
11
Pour C, wchar_t est un typedef. Si c'est un synonyme pour unsigned intsi c'est un type non signé, ou si elle est de 4 octets, la mise en œuvre est définie.
En C++, wchar_t est un type intégré. Ici, aussi, de sa taille et de ce paramètre est de la mise en œuvre définies.
1
wchar_t n'est pas requis par la norme n'est pas signé. Il peut également être signé. Et il doit y avoir un autre type de la même taille, mais la norme n'est pas explicitement dire que autre type doit être court.
"de la même taille, ce paramètre, et l'alignement des exigences comme l'un des autres types intégraux, appelé son type sous-jacent" (C++98 §3.9.1).
Dans les compilateurs C c'est une définition de type, généralement définies dans stddef.h
1
Non, il ne le fait pas. Il se traduit par " un caractère large.' Faire des hypothèses sur ce que arrive à être sur une plate-forme est incorrecte, et les défaites de la but entier d'avoir un wchar_t en premier lieu.
Le point de l'utilisation d'une couche d'abstraction est de séparer le contenu sémantique du type à partir de sa représentation sous-jacente.
0
Pas nécessairement; il pourrait être une suite de 4 octets quantité, ou de toute autre taille choisie par la mise en œuvre.
En bref: en C peut être en C++ pas de.
Largement. C définit wchar_t comme typedef mais dans Unix, il est généralement de 4 octets (donc généralement pas court) et dans Windows 2 de sorte qu'il peut être courte.
Sous C++, il est unique dans ce type
char
ouint
de sorte que vous pouvez légalement surchargevoid foo(short x)
etvoid foo(wchar_t x)
Pour quelqu'un d'autre qui peut venir à travers cette réponse parce que les appels de fonction dans votre projet Visual Studio ne sera pas le lien, malgré les deux parties de prendre
wchar_t
(ou d'un type comparable, commeLPCTSTR
avec UNICODE #défini), et lorsque vous DUMPBIN de la bibliothèque, les exportations de la fonction prendconst unsigned short *
sachez que VS permet d'éteindre leswchar_t
comme un type. Si quelqu'un change ce dans une bibliothèque, et vous ne frappez pas le même commutateur de compilateur dans votre projet, il ne sera pas le lien.Cette option peut être modifiée en vertu de "Project Properties>C/C++/Langue/Traiter les WChar_t comme Builtin type", il peut aussi être modifié via le "/Zc" option.
Pour C,
wchar_t
est untypedef
. Si c'est un synonyme pourunsigned int
si c'est un type non signé, ou si elle est de 4 octets, la mise en œuvre est définie.En C++,
wchar_t
est un type intégré. Ici, aussi, de sa taille et de ce paramètre est de la mise en œuvre définies.wchar_t n'est pas requis par la norme n'est pas signé. Il peut également être signé. Et il doit y avoir un autre type de la même taille, mais la norme n'est pas explicitement dire que autre type doit être court.
Dans les compilateurs C c'est une définition de type, généralement définies dans stddef.h
Non, il ne le fait pas. Il se traduit par " un caractère large.' Faire des hypothèses sur ce que arrive à être sur une plate-forme est incorrecte, et les défaites de la but entier d'avoir un wchar_t en premier lieu.
Le point de l'utilisation d'une couche d'abstraction est de séparer le contenu sémantique du type à partir de sa représentation sous-jacente.
Pas nécessairement; il pourrait être une suite de 4 octets quantité, ou de toute autre taille choisie par la mise en œuvre.
Il dépend du compilateur.