मैं 1997 में जारी किए गए nmap के स्रोत कोड को देख रहा था और मैंने कोड के इस खंड को देखा जो मुझे थोड़ा अजीब लगता है:
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
ही यह वास्तव में उन बयानों को अनुकूलित करता है।