小编fip*_*197的帖子

strcmp中的奇怪返回值

在检查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.

以下是我的测试环境.

  • Ubuntu 18.04 64bit
  • gcc 7.3.0
  • 铿锵6.0.0

c gcc clang

6
推荐指数
3
解决办法
600
查看次数

标签 统计

c ×1

clang ×1

gcc ×1