// Тут конвертация float->double и вызов pow, аргументы в double
printf ("%lf\n", pow (m,n) );
printf ("%lf\n", pow (3.0,54.0) );
// Тут конвертация double->float и вызов powа, аргументы во float
printf ("%lf\n", powf (m,n) );
printf ("%lf\n", powf (3.0,54.0) );
double a = pow(m, n);
double b = pow(3.,54.);
uint64_t *ba = (uint64_t*)&a;
uint64_t *bb = (uint64_t*)&b;
if (*ba == *bb)
printf("Равны\n");
else
printf("Не равны\n");
пожалуйста читайте внимательнее: "Виртуалка".