I've seen some code in the forums that utilises 'CompilerIf #PB_Compiler_OS = ...' statements to let a program know what endian format a system is using. I decided however that I wanted to write this little function that tests what endian format is being used. Maybe someone will find it useful.
Code: Select all
Enumeration
#LITTLE_ENDIAN
#BIG_ENDIAN
EndEnumeration
Procedure ByteOrder()
Protected test.w = 1
If PeekB(@test)
ProcedureReturn #LITTLE_ENDIAN
Else
ProcedureReturn #BIG_ENDIAN
EndIf
EndProcedure
CompilerIf #PB_Compiler_IsMainFile
Select ByteOrder()
Case #LITTLE_ENDIAN
MessageRequester("ByteOrder()", "Little-endian (Intel) byte order detected.")
Case #BIG_ENDIAN
MessageRequester("ByteOrder()", "Big-endian (Motorola) byte order detected.")
EndSelect
CompilerEndIf
Francis