在检查strcmp函数的返回值时,我在gcc中发现了一些奇怪的行为.这是我的代码:
#include <stdio.h>
#include <string.h>
char str0[] = "hello world!";
char str1[] = "Hello world!";
int main() {
printf("%d\n", strcmp("hello world!", "Hello world!"));
printf("%d\n", strcmp(str0, str1));
}
Run Code Online (Sandbox Code Playgroud)
当我用clang编译它时,两次调用都strcmp返回32.然而,当用gcc编译时,第一个调用返回1,第二个调用返回32.我不明白为什么第一次和第二次调用strcmp在编译时返回不同的值使用gcc.
以下是我的测试环境.