¿Loco?

<< < (2/4) > >>

Littlehorse:
Es que si haces 2F el sufijo se lo aplicas a una constante entera, ni siquiera es un sufijo valido para un entero  ;D.

Saludos!

biribau:
Pues yo creo que es un diferenciador de token como si pones 2e0(da double), o sea, porque si pones (2+3)F no creo que funcione, claro que no es constante de cara al compilador, de hecho 2 F no se puede poner, porque no es una construccion sintática, es léxica, y a nivel léxico aun no hay tipos, sólo tokens, los tipos se asignan una vez estando en el ast, (o posiblemente antes en el analizador sintáctico). :)

Littlehorse:
A ver, no tiene nada que ver una cosa con la otra. Que 2e0 sea double no infiere nada mas que eso, en todo caso 2e0f es float. Yo lo único que te aclare fue que esto:

Cita de: biribau en 25 Abril 2010, 23:30 pm

Código:

float a=5/2F;
creo recordar que también chuta


es incorrecto.

En cualquiera de los casos un compilador decente optimizara en la medida de lo posible, a lo mínimo en asignaciones y en parámetros de funciones.

En cuanto al resto, no se trata de "creer". Todo código fuente en algún momento se descompone en lo que se llama "preprocessing tokens" y luego de realizar el procedimiento especifico se convierten en "tokens". Es ese resultado el que se analiza en forma semántica y sintáctica.
Igualmente la descripción de las fases de traducción siempre son conceptuales ya que siempre depende del estándar que siga el entorno que se utiliza y como se lo implemente, pero sea como sea lejos están de ser creencias.

Saludos

biribau:
Cita de: Littlehorse en 26 Abril 2010, 19:17 pm

A ver, no tiene nada que ver una cosa con la otra. Que 2e0 sea double no infiere nada mas que eso, en todo caso 2e0f es float. Yo lo único que te aclare fue que esto:

Cita de: biribau en 25 Abril 2010, 23:30 pm

Código:

float a=5/2F;
creo recordar que también chuta


es incorrecto.

En cualquiera de los casos un compilador decente optimizara en la medida de lo posible, a lo mínimo en asignaciones y en parámetros de funciones.

En cuanto al resto, no se trata de "creer". Todo código fuente en algún momento se descompone en lo que se llama "preprocessing tokens" y luego de realizar el procedimiento especifico se convierten en "tokens". Es ese resultado el que se analiza en forma semántica y sintáctica.
Igualmente la descripción de las fases de traducción siempre son conceptuales ya que siempre depende del estándar que siga el entorno que se utiliza y como se lo implemente, pero sea como sea lejos están de ser creencias.

Saludos

Tienes razón no te entendí lo de que no es 2F sino 2.F o 2.0f, crei que eran otras alternativas válidas
Cuando digo "creo" es porque no estoy seguro. No por algun tipo de fe  :laugh:
Sólo para que quede claro (lo que trataba de explicar antes *con un ejemplo incorrecto*)
Ahora lo he mirado, no es una creencia ni suposicion ni depende de la implementacion, porque C es un lenguaje con un estándar y si algo no sigue el estándar no es C, el estándar C99 es objetivo(tambien está en el C89) y pone An unsuffixed floating constant has type double. If suffixed by the letter f or F, it has type float. If suffixed by the letter l or L, it has type long double.
O sea que 2.f es float siempre, no hay ningun cast por medio, solo eso.
Perdón por el malentendido, me he liado yo solo  :silbar:

Komodo:
Otra duda solo me llega hasta 6 decimales y yo quiero sobre 50 o por ahi.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior