variable sirve que para long float definicion data c++ syntax long-integer

c++ - sirve - ¿Es “long long”=“long long int”=“long int long”=“int long long”?



long long c++ (4)

¿Es “long long” = “long long int” = “long int long” = “int long long”?

Todas las demás respuestas aquí hablaron sobre la segunda parte de su pregunta. Para la primera parte: ¿"long long" = "long long int"? La respuesta es .

C ++ 11 7.1.6.2 Especificadores de tipo simple (tabla 10)

Specifier(s) Type ... ... long long int “long long int” long long “long long int” long int “long int” long “long int” ... ...

Para la segunda parte de su pregunta: ¿"long int long" = "int long long"? , la respuesta es sí otra vez.

Los especificadores de tipo pueden aparecer en cualquier orden y pueden mezclarse con los otros especificadores de declaración. Por lo tanto, todo lo siguiente

long long long long int long int long int long long

son válidos y equivalentes

Encontré que tanto long int long como int long long pueden compilarse para un tipo variable. ¿Hay alguna diferencia entre long int long , int long long , long long y long long int ?

En general, ¿es el tipo idéntico si tiene el mismo número de long ?

1 largo:

long l; int long il; long int li;

2 largos:

long long ll; int long long ill; long int long lil; long long int lli;

Además, si lo anterior es correcto, ¿son idénticas las siguientes declaraciones?

long long* llp; int long long* illp; long int long* lilp; long long int* llip;


Es el tipo idéntico ...

Si.

C ++ 11 §7.1.6.2 / 3

" Cuando se permiten múltiples especificadores de tipo simple , se pueden mezclar libremente con otros especificadores de declinación en cualquier orden.


De acuerdo con el estándar C ++ (7.1.6.2 Especificadores de tipo simple)

3 Cuando se permiten múltiples especificadores de tipo simple, se pueden mezclar libremente con otros especificadores de declinación en cualquier orden.

Entonces, por ejemplo, la siguiente declaración es válida

long static long const int x = 10;

Incluso puede usar el especificador constexpr junto con el calificador const . Por ejemplo

constexpr long static long const int x = 10;

Por cierto, nos olvidamos del especificador signed ! Agregémoslo, por ejemplo, antes del declarador x

constexpr long static long const int signed x = 10;

En C también puede usar varios calificadores de tipo en la misma secuencia de especificador de declaración. De acuerdo con el Estándar C (6.7.3 Calificadores de tipo)

5 Si el mismo calificador aparece más de una vez en la misma lista de calificador-especificador, ya sea directamente o mediante uno o más typedefs, el comportamiento es el mismo que si apareciera solo una vez ...

Entonces, por ejemplo, en C, la siguiente declaración también es válida

const long const long static const int const signed x = 10;

Entonces, si se le paga de acuerdo con la cantidad de símbolos escritos en el programa, le aconsejo que use tales declaraciones. :)


Sí, pero por favor no . Así como el inglés y el alemán tienen órdenes de palabras convencionales para adjetivos y adverbios (por ejemplo, tiempo, forma y lugar), también lo hacen C y C ++. Variar del orden convencional no confundirá al compilador, pero sí confundirá a sus compañeros desarrolladores. Sugeriría que el orden convencional está más o menos en la línea de

  1. static / extern (enlace)
  2. const / volatile (modificación)
  3. signed / unsigned (firma)
  4. short / long (largo)
  5. Tipo básico (sustantivo principal)

aunque ciertamente hay algo de margen de maniobra.