specifiers long c syntax formatting int

long - ¿Por qué formatear un int como 6*1000*1000 y no 6000000



scanf (3)

Esta pregunta ya tiene una respuesta aquí:

Estaba leyendo un código de un middleware que está escrito en c y en el código escribieron lo siguiente:

usleep(6*1000*1000);

Entonces mi pregunta es:

¿Hay alguna razón detrás de escribirlo así? ¿por qué no solo escribir 6000000? Hacer esta multiplicación tiene algún efecto en el rendimiento del programa?


Simplemente hace que la fuente sea más fácil de leer. Con la multiplicación, el número obviamente es de 6 millones.

Como se evalúa en una constante, el compilador evaluará la constante en tiempo de compilación y no habrá diferencia en el código compilado.


usleep() espera que el argumento proporcionado esté en "microsegundos".

Esta es una transformación visual de microsegundos a segundos, no se espera ningún impacto en el código ya que cualquier compilador medio decente calculará eso en tiempo de compilación.


Lo más probable es que esto se haya hecho para facilitar la lectura.

Mirando 6000000 en el código, puede que no veas inmediatamente cuántos ceros hay. La distinción visual entre este valor y 60000000 o 600000 no es excelente. Al dividirlo, hace que sea más fácil de ver.

Cualquier compilador decente debería calcular 6*1000*1000 en tiempo de compilación, por lo que no debería haber impacto en el rendimiento.