带返回值的函数如果没有写全返回路径,这时的返回值系统由AX寄存器值确定

来源:互联网 发布:telnet ip 端口 linux 编辑:程序博客网 时间:2024/06/05 10:27

今天看了段代码,部分如下:

int GetMinPeriod(char *inputstring)
{

int i=0,j=0;//i用来记录周期,j用来记录第j个周期开始字符的位置
bool ok=0;
int len=strlen(inputstring);  //字符串长度

........

}

这个函数不是全部路径都有返回值return ,但是在没有return的情况下,此函数被调用处竟然有返回值存在,而这个值恰巧跟需要的有时候还一样。后来想想,strlen()这个函数是有返回值的,然后加了

short b;
_asm {
mov b,ax;
   }

跟了一下asm,发现果不其然b=len,返回的值是len。

如果没有strlen,那么返回值就不可控了。

ps:第一次发博客,希望开个好头!


0 0
原创粉丝点击