fork download
  1. #include <stdio.h>
  2. #include <stdint.h>
  3.  
  4. enum ETYPE {
  5. LE,
  6. BE,
  7. INVALID
  8. };
  9.  
  10. enum ETYPE find_endianness(void) {
  11. // uint8_t a[4] = {0x10, 0x20, 0x30, 0x40};
  12. // uint16_t *ptr = a[0];
  13.  
  14. uint32_t val = 0x10203040;
  15. uint8_t *ptr = (uint8_t *)&val;
  16. if (*ptr == 0x40) {
  17. return LE;
  18. }
  19. else {
  20. return BE;
  21. }
  22. return INVALID;
  23. }
  24.  
  25. int main()
  26. {
  27. if (find_endianness() == LE) {
  28. printf("Endianness is little endian\n");
  29. }
  30. else {
  31. printf("Endianness is big endian\n");
  32. }
  33. return 0;
  34. }
  35.  
Success #stdin #stdout 0.01s 5296KB
stdin
Standard input is empty
stdout
Endianness is little endian