- 论坛徽章:
- 0
|
本帖最后由 Constantine_X 于 2013-06-10 22:59 编辑
以下是我程序片断截取:
我的字符串比较函数这样定义:
int strcmp(const char * src,const char * dst)
{
int ret = 0 ;
while( ! (ret = *(unsigned char*)src - *(unsigned char*)dst) && *dst && *src)
++src, ++dst;
if ( ret < 0 )
ret = -1 ;
else if ( ret > 0 )
ret = 1 ;
return( ret );
}
这两个字符串显然是不相等:
char buffer[10] = "ledo";
char command_1[]= "ledon";
但下面这个if语句却总能执行 led_switch = 1;
if( strcmp(buffer,command_1) == 0 )
{
led_switch =1;
}
在VC中调用和上面定义相同的strcmp()函数,比较buffer和command却能得到正确的结果.
求分析.... |
|