Пока я читал исходный код glibc, я нашел этот интересный комментарий в strcat.c. Может ли кто-нибудь объяснить, как работает эта оптимизация?Приращение переменной при чтении памяти
/* Make S1 point before the next character, so we can increment
it while memory is read (wins on pipelined cpus). */
s1 -= 2;
do
{
c = *s2++;
*++s1 = c;
}
while (c != '\0');
Скомпилируйте и objdump это откроет все чудеса. : D – Stolas