|
|
|
|
|
by kccqzy
1319 days ago
|
|
The compiler can optimize memcpy with a known size into a small number of move instructions so they are identical to copying stack values. Try playing with memcpy on Godbolt and you'll find that the compiler will compile the memcpy to a single mov instruction when the size is small, and some movdqu/movups when the size is slightly large, and only a function call when the size is huge. > memcpy is usually used to copy heap memory memcpy is often used in low-level serialization / deserialization code since you can't just cast a buffer pointer to a uint32_t pointer and dereference that; the solution is memcpy between variables that are often both on the stack. |
|