Saya melihat kode sumber untuk nmap yang dirilis pada tahun 1997 dan saya perhatikan bagian kode ini yang terlihat sedikit aneh bagi saya:
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';
Mengapa kamu memiliki i++;
dan kemudian i--;
setelah satu sama lain? i
adalah 0
, lalu i++
beralih i
ke 1
. Setelah itu, i--
beralih i
ke 0
.
Tautan ke kode sumber asli. Pencarian untuk:
i++;
i--;
Adakah yang bisa menjelaskan untuk apa ini?
-O
itu memang mengoptimalkan pernyataan-pernyataan itu.