ฉันกำลังดูซอร์สโค้ดสำหรับ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--จะเปลี่ยนไปi0
ลิงก์ไปยังซอร์สโค้ดต้นฉบับ ค้นหา:
i++;
i--;
ทุกคนสามารถอธิบายสิ่งนี้มีไว้เพื่ออะไร?
-Oจริงแล้วมันเพิ่มประสิทธิภาพของคำสั่งเหล่านั้น