Différence de stricmp et _stricmp dans Visual Studio?

Je peut poser une question stupide, mais je ne peux vraiment pas trouver une réponse avec google plus je suis encore un débutant d'utiliser MSVS.

Récemment, j'ai besoin d'utiliser des fonctions pour faire la comparaison de deux chaînes de caractères. Ce que je ne comprends pas, c'est la différence de stricmp et _stricmp. Ils ont tous deux peuvent être utilisés pour comparer des chaînes de caractères et les mêmes résultats. Je suis allé vérifier:

char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown dog jumps over the lazy fox";

void main( void )
{
   char tmp[20];
   int result;
   /* Case sensitive */
   printf( "Compare strings:\n\t%s\n\t%s\n\n", string1, string2 );
   result = stricmp( string1, string2 );
   if( result > 0 )
      strcpy( tmp, "greater than" );
   else if( result < 0 )
      strcpy( tmp, "less than" );
   else
      strcpy( tmp, "equal to" );
   printf( "\tstricmp:   String 1 is %s string 2\n", tmp );
   /* Case insensitive */
   result = _stricmp( string1, string2 );
   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 strings:
    The quick brown dog jumps over the lazy fox
    The QUICK brown dog jumps over the lazy fox

    stricmp:   String 1 is equal to string 2
    _stricmp:  String 1 is equal to string 2

Je me demande pourquoi...

OriginalL'auteur FortCpp | 2012-09-13