原文:Why does GCC use movzbl again to zero-extend a register that s already zero-extended?
I am wondering why this code: size_t hash_word(const char* c, size_t size) { size_t hash = uchar(c[0]); hash ^= uchar(c[size - 1]); hash ^= uchar(c[size - 2]); return hash; } When ...