yi wei Wang

@yiwei01

Joined on Sep 9, 2017

  • contributed by < yiwei01 > Q1: memory alignment 以下程式碼改寫自 Linux 核心,比較兩個 Ethernet MAC 地址是否一致。在特定的硬體平台 (如 Arm 和 MIPS) 可能會遇到 unaligned memory access,請改寫以避開這個問題。考慮輸入值必為 16-bit-aligned addresses #include <stdint.h> bool addr_equal(const uint8_t *addr1, const uint8_t *addr2) { uint32_t fold = ((*(const uint32_t *)addr1) ^ (*(const uint32_t *)addr2)) | ((*(const uint16_t *)(addr1 + 4)) ^ (*(const uint16_t *)(addr2 + 4)));
     Like  Bookmark