Я искал исходный код для nmap, который был выпущен в 1997 году, и заметил этот фрагмент кода, который выглядит немного странным для меня:
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этим действительно оптимизируются эти операторы.