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