Différence entre ssortingcmp et _ssortingcmp dans Visual Studio?

Je peux poser une question stupide, mais je ne trouve pas vraiment de réponse avec Google et je suis encore un débutant dans l’utilisation du MSVS.

J’ai récemment eu besoin d’utiliser des fonctions pour comparer deux chaînes. Ce que je ne comprends pas, c’est la différence entre ssortingctmp et _ssortingcmp. Ils peuvent tous deux être utilisés pour comparer des chaînes et renvoyer les mêmes résultats. Je suis allé les vérifier:

char ssortingng1[] = "The quick brown dog jumps over the lazy fox"; char ssortingng2[] = "The QUICK brown dog jumps over the lazy fox"; void main( void ) { char tmp[20]; int result; /* Case sensitive */ printf( "Compare ssortingngs:\n\t%s\n\t%s\n\n", ssortingng1, ssortingng2 ); result = ssortingcmp( ssortingng1, ssortingng2 ); if( result > 0 ) strcpy( tmp, "greater than" ); else if( result  0 ) strcpy( tmp, "greater than" ); else if( result < 0 ) strcpy( tmp, "less than" ); else strcpy( tmp, "equal to" ); printf( "\t_stricmp: String 1 is %s string 2\n", tmp ); } 

résultat montre qu’ils sont les mêmes:

 Compare ssortingngs: The quick brown dog jumps over the lazy fox The QUICK brown dog jumps over the lazy fox ssortingcmp: Ssortingng 1 is equal to ssortingng 2 _ssortingcmp: Ssortingng 1 is equal to ssortingng 2 

Je me demande pourquoi …

ssortingcmp est une fonction POSIX et non une fonction C90 standard. Pour éviter les conflits de noms, Microsoft a déconseillé d’utiliser le nom non conforme ( ssortingcmp ) et vous a recommandé d’utiliser _ssortingcmp place. Il n’y a pas de différence de fonctionnalité ( ssortingcmp est simplement un alias pour _ssortingcmp .)

Pour de nombreuses fonctions de bibliothèque, y compris toutes les fonctions , les versions préfixées par un soulignement sont / étaient l’idée de Microsoft de quelque chose. Je ne me rappelle pas exactement quoi.

La version non soulignée est très portable. Le code qui utilise _ssortingcmp() , _strcpy() , etc. doit être géré d’une manière ou d’une autre – édition, #defined , etc. – si le code sera traité par un autre compilateur.