На некоторых компиляторах (с некоторыми флагами оптимизации), memcpy
будет использовать некоторое __builtin_memcpy
, которое волшебным образом обрабатывается компилятором (и может даже не вызывать вызов функции , но всегда будьте внимательны и специализированы).
См. этот связанный вопрос и документацию встроенных GCC . В конце концов погрузитесь в исходный код вашего компилятора GCC.
Смотрите также исходный код вашего libc
. Вероятно, в каком-то внутреннем заголовке упоминается __builtin_mempcy
.
Конечно, используйте gcc -S -fverbose-asm -O
и посмотрите сгенерированный файл ассемблера *.s