Ich habe mir den Quellcode für nmap angesehen , der 1997 veröffentlicht wurde, und mir ist dieser Codeabschnitt aufgefallen, der für mich etwas seltsam aussieht:
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';
Warum hättest du i++;
und dann i--;
direkt nacheinander? i
ist 0
, i++
dreht sich dann i
zu 1
. Danach i--
dreht sich i
um 0
.
Link zum ursprünglichen Quellcode. Suchen nach:
i++;
i--;
Kann jemand erklären, wofür das ist?
-O
damit werden diese Anweisungen tatsächlich optimiert.