#include <stdio.h>
#include <stdint.h>
uint32_t reverse_endian(uint32_t ip_address)
{
uint8_t *bytes = (uint8_t *) &ip_address;
uint8_t tmp = bytes[0];
bytes[0] = bytes[3];
bytes[3] = tmp;
tmp = bytes[1];
bytes[1] = bytes[2];
bytes[2] = tmp;
return ip_address;
}
static uint32 Test_TC8_ipaddr_to_u32addr(const unsigned char* localAddr)
{
uint32 u32addr = 0U;
u32addr = (localAddr[0]<< 24) + (localAddr[1]<<16) + (localAddr[2]<<8) + localAddr[3];
return u32addr;
}
struct my_struct {
uint8_t array[6];
};
int main()
{
struct my_struct my_array={{0x11,0x11,0x22,0x33,0x44,0x55}};
struct my_struct* p2array =&my_array;
ip_address=Test_TC8_ipaddr_to_u32addr(p2array->array));
printf("Original IP address: %08X\n", ip_address);
ip_address = reverse_endian(ip_address);
printf("Reversed IP address: %08X\n", ip_address);
return 0;
}