Se me ocurre algo así:
Código PHP:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int valor=0x12345678;
int i;
char cadena[11];
char aux[3];
sprintf(cadena,"0x%X",valor);
printf("%s\n",cadena);
for(i=2;i<6;i+=2){
strncpy(aux,&cadena[i],2);
strncpy(&cadena[i],&cadena[8-(i-2)], 2);
strncpy(&cadena[8-(i-2)],aux,2);
}
printf("%s\n",cadena);
valor=atoi(cadena);
printf("%x\n",valor);
return 0;
}
Solo que atoi no me devuelve un valor bueno aunque quiero hacerlo con AnsiString y tiene su método ToInt() y podría usar SubString en lugar de strncpy pero tengo que ver cómo adaptarlo. El fallo que veo es que trabajar con strings es lento en comparación con trabajar con números.
Otra opción que se me ocurre es leer del fichero 4 bytes como char[4] y luego convertir con algún Cast esos 4 bytes en un entero ¿Con eso obtendría el valor invertido? ¿Cómo se haría ese Cast?