L'obtention d'un nombre hexadécimal en un programme via la ligne de commande

Je peux le faire:

int main(int argc, char** argv) {
  unsigned char cTest = 0xff;
  return 0;
}

Mais quelle est la bonne façon d'obtenir un nombre hexadécimal dans le programme via la ligne de commande?

unsigned char cTest = argv[1];

ne pas faire l'affaire. Qui produit un de l'initialisation de fait de nombre entier à partir de pointeur sans un casting avertissement.

Arguments de ligne de commande sont toujours les chaînes de caractères. Certaines plates-formes peuvent en Unicode, dans ce cas, un simple strtol ne fonctionnera pas.
auquel cas mbstol ou quel que soit le multi-octets ou large char (ou TCHAR) variantes couvrirait que? (Je doute aussi que c'est une priorité, étant donné la nature de la question
dans ce cas, est le deuxième paramètre de main() pas de type char **? Qui ne peut pas être conformes aux normes en vigueur.
Ils pourraient encore être multi-octets dans lequel cas mbstoul serait le mieux, mais c'est beaucoup trop de fantaisie dans le contexte de la question il me semble

OriginalL'auteur Pieter | 2010-01-29