令自己“诧异”的底层函数 -- strcmp (一直以为掌握了,其实没有)

strcmp函数在一般人的印象中都是返回-1,0,1三者,其中之一的…… 但实际上准确的说,和底层该函数的实现有关,ubuntu下对其的描述是这样的:


SYNOPSIS
       #include <string.h>
       int strcmp(const char *s1, const char *s2);
DESCRIPTION
       The  strcmp()  function compares the two strings s1 and s2.  It returns an integer less than, equal to,
       or greater than zero if s1 is found, respectively, to be less than, to match, or be greater than s2.


但微软提供的strcmp仅返回-1,0,1三者之一,大家后续使用strcmp时一定要ubuntu的des来使用,最稳妥!切记不要用switch,自己今天使用的是switch ... case -1: case 0: case :1,然后就有了一些列问题!!! 


如果简简单单的是因为这个,而让自己纠结了几个小时那自己也太菜了,事实上,自己一开始也想到了返回值的问题! 

可是当自己在ubuntu下用gcc编译自己用来测试的几行代码时 —— 想检测下strcmp的返回值 —— 发现了如下有点诧异的地方!!!&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值