1234567891011121314151617181920212223242526272829 |
- package internal
- import (
- "encoding/binary"
- "unsafe"
- )
- // NativeEndian is set to either binary.BigEndian or binary.LittleEndian,
- // depending on the host's endianness.
- var NativeEndian binary.ByteOrder
- // Clang is set to either "el" or "eb" depending on the host's endianness.
- var ClangEndian string
- func init() {
- if isBigEndian() {
- NativeEndian = binary.BigEndian
- ClangEndian = "eb"
- } else {
- NativeEndian = binary.LittleEndian
- ClangEndian = "el"
- }
- }
- func isBigEndian() (ret bool) {
- i := int(0x1)
- bs := (*[int(unsafe.Sizeof(i))]byte)(unsafe.Pointer(&i))
- return bs[0] == 0
- }
|