让大家见识一下新一代分析源代码生成流程图的东东吧

源代码有点复杂,只是形式不用在意执行意义,它只是展示大部分所有的语法点:循环及其break和continue、goto、分支、try...catch等等,应有尽有。

int SocketAgent::DataReceiver(char *data)
{
    SocketAgent 
*a;
    
int ret=0,pos,len,count;
    
int buff[1024];
    
int *i_data=(int *)data;
    len
=0;
    
do{
        
if(i_data[len]=='a')
        {
            
while(i_data[len] && len<1024)
            {
                
if(i_data[len]=='\r')
                {
                    len
++;
                    
continue;
                }
                
if(i_data[len]=='\n')
                    
break;
            }
        }
    }
while(len<1024);

    
for(int i=0,pos=0,count=0;i<1024;i++)
    {
        
if(i_data[i]!='q')
            buff[pos
++]=i_data[i];
        
if(i_data[i]=='b')
        {
            
break;
        }
        
else
            count
++;
        
if(i_data[i]==T_ERROR)
        {
            
goto _exit;
        }
    }
    
try{
        
if(len>=1024)
            
throw("throw out");
    }
catch(char *error)
    {
        ShowMessage(error);
    }
    
switch(count)
    {
        
case 1:
            ret
=100;
            
break;
        
case 2:
            ret
=200;
            
break;
        
default:
            ret
=300;
            
break;
    }
    
return ret;
    _exit:
    ret
=1001;
    
return ret;
}
再看看分析后的流程图

是不是比单纯看代码容易很多?

posted @ 2008-02-07 23:36  yesry  阅读(3163)  评论(6编辑  收藏  举报