我查看的是1997年发布的nmap的源代码,我注意到这段代码对我来说有点奇怪:
int i=0, j=0,start,end;
char *expr = strdup(origexpr);
ports = safe_malloc(65536 * sizeof(short));
i++; /* <<<<<< */
i--; /* <<<<<< */
for(;j < exlen; j++)
if (expr[j] != ' ') expr[i++] = expr[j];
expr[i] = '\0';
为什么你们会彼此i++;
紧接着i--;
又互相拥有?i
是0
,则i++
轮流i
到1
。在那之后,i--
变成i
到0
。
链接到原始源代码。搜索:
i++;
i--;
谁能解释这是什么意思?
-O
确实可以优化这些语句。