1997 yılında yayımlanan nmap için kaynak koduna bakıyordum ve bana biraz garip görünen kodun bu bölümünü fark ettim:
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';
Neden birbirinize i++;
ve i--;
sonra birbirinize kavuştunuz? i
olduğu 0
, daha sonra i++
döner i
etmek 1
. Bundan sonra, i--
döner i
etmek 0
.
Orijinal kaynak koduna bağlantı. Aramak:
i++;
i--;
Herkes bunun ne için olduğunu açıklayabilir mi?
-O
gerçekten bu ifadeleri optimize ediyor.