Eu estava olhando o código fonte do nmap lançado em 1997 e notei essa seção de código que me parece um pouco estranha:
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';
Por que você teria i++;
e i--;
depois um do outro? i
é 0
, então i++
vira i
para 1
. Depois disso, i--
vira i
para 0
.
Link para o código fonte original. Procurar por:
i++;
i--;
Alguém pode explicar para que serve isso?
-O
isso, ele realmente otimiza essas instruções.