Artificial intelligent assistant

8バイトにアライメントされていないchar *型を整数型にキャストした時エラーが起きないのはなぜですか? suint64_t #include <stdio.h> #include <string.h> #include <stdint.h> int main() { char *s = strdup("\0a\0\0\0\0\0\0"); if (!((uintptr_t)s % 8)) s++; printf("%lu\n", *(uint64_t *)s); } CPU ryzen 5 3600 OS windows10 64bitvirtual boxUbuntu 18.04.5 LTS clang -Werror -Wall -Wextra

x86/x64CPU(/)

x86 - - Wikipedia

> x86x86 CPUSSE212816MOVDQU

. CPU (alignment-tolerant processors) -

> CPU x86 ()

. CPU (alignment-strict processors) -

> x86 CPU ( RISC) 3

uint64_t()

* * *

``
8`s++`
8`s++`


if ((uintptr_t)s % 8)
s++;

xcX3v84RxoQ-4GxG32940ukFUIEgYdPy f7e991d2e911b0c100978785c0e08ad5