En C / C # / etc. puede decirle al compilador que un número literal no es lo que parece ser (es decir, en float
lugar de double
, en unsigned long
lugar de int
:
var d = 1.0; // double
var f = 1.0f; // float
var u = 1UL; // unsigned long
etc.
¿Podría alguien señalarme una lista de estos? Estoy buscando específicamente un sufijo para short
o Int16
.
Respuestas:
Creo que eso es todo ... no hay especificadores literales para short / ushort / byte / sbyte
fuente
byte b = 42;
)somebyte = (byte)(somebool ? 1 : 0);
1l
y1L
ambas serán tratadas como un entero largo, pero ciertamente1L
es más legible que1l
.De §2.4.4.2 Literales enteros :
Y de §2.4.4.3 Literales reales :
fuente
Si su variable aún no es corta, debe emitirla explícitamente:
fuente
No hay uno para abreviar. Solo úsalo
short s = 1;
.fuente
short z1 = (0 == 1 ? 0 : 1);
Pero esto no:short y = 1; short z2 = (0 == 1 ? 0 : y);
(lo siento, no se permiten saltos de línea en los comentarios)0
a que la rama en si se convierte aint
antes de la asignación az2
. Si usa dosshort
s en sus ramas, el resultado nuevamente será ashort
. Con el if / else, el compilador no puede saber queint
se puede representar comoshort
.