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
実際にはこれらのステートメントを最適化しています。