直接上代码
因为vs环境下 1 > 2 返回 1 ; 1 < 2 返回 -1 所以下方分成了两份
而在另外一些编译器下就可能不一样(gcc返回的就是他们的相减后的结果)
int my_strcmp(const char * str1 , const char * str2) { while(*st1 == *str2 && *string1 != '\0')//当遇到\0就需要停止了 { str1++; ste2++; } return *str1 - *str2; }
int my_strcmp(const char* string1, const char* string2) { assert(string1 && string2); while (*string1 == *string2 && *string1 != '\0')//找到不相等的字符 { string1++; string2++; } if ((*string1 - *string2) == 0) return 0; else return (*string1 - *string2)>0?1:-1; //vs环境下1大于2返回1 , 1<2 返回-1 1 = 2 返回 0 }