Lorsque vous utilisez C, vous pouvez utiliser soit main() ou _tmain() pour le programme entrée. Bien que les deux servent un objectif similaire, il existe une distinction cruciale qui modifie la façon dont ils traitent les arguments.
Selon la norme C, main est le point d'entrée désigné pour les programmes. Il adhère à l'une des deux signatures :
int main(); int main(int argc, char* argv[]);
Où argc désigne le nombre d'arguments de ligne de commande et argv est un tableau de tableaux de caractères contenant les arguments.
_tmain, quant à lui, est une extension spécifique à Microsoft qui simplifie la transition entre Unicode (UTF-16) et des jeux de caractères multioctets. Si Unicode est activé, _tmain est compilé en tant que wmain, sinon il est compilé en tant que main.
Le problème survient parce que votre fonction _tmain n'est pas correctement définie. Wmain est conçu pour accepter les arguments wchar_t, pas les arguments char. Étant donné que le compilateur n'applique pas cette règle pour main, un tableau de chaînes wchar_t est transmis à votre fonction principale, qui les interprète comme des chaînes de caractères.
UTF-16, le jeu de caractères utilisé dans Windows avec Unicode activé. , représente les caractères ASCII sous forme de paires d'octets : suivis de la valeur ASCII. Cependant, dans les processeurs x86 avec un ordre d'octets petit-boutiste, l'ordre est inversé. Cela signifie que dans une chaîne de caractères, la chaîne se termine par un octet nul, ce qui amène votre programme à identifier les chaînes à un octet.
Lorsque vous vous lancez dans la programmation Windows, vous êtes confronté plusieurs choix :
_tmain et entrée du programme d'adresse principale en C , mais _tmain est une extension Microsoft qui gère Unicode. Lorsqu'il s'agit d'arguments, _tmain nécessite wchar_t, tandis que main fonctionne avec char. Comprendre ces différences est crucial pour une exécution fluide de vos applications C.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!