Trabajo de Keyword long en programación C

long es una palabra clave en Java que simboliza el tipo de datos Long . El tipo de datos largo es un entero en complemento a dos de 64 bits con:

  • Tamaño: 64 bits
  • Valor: -2 63 a 2 63 -1.

La salida del compilador GCC de 64 bits daría un tamaño de 8, mientras que en el compilador GCC de 32 bits el tamaño sería 4. Por lo tanto, varía de un compilador a otro. Ahora la pregunta es ¿qué está pasando exactamente aquí? Discutámoslo en la forma en que el compilador asigna memoria internamente.

La CPU llama a los datos de la RAM dando la dirección de la ubicación a MAR (registro de direcciones de memoria). Se encuentra la ubicación y los datos se transfieren a MDR (Memory Data Register). Estos datos se registran en uno de los Registros del Procesador para su posterior procesamiento. Es por eso que el tamaño del bus de datos determina el tamaño de los registros en el procesador. Ahora, un registro de 32 bits puede llamar datos de solo 4 bytes de tamaño a la vez. Y si el tamaño de los datos supera los 32 bits, se necesitarían dos ciclos de recuperación para tener los datos. Esto reduce la velocidad de la máquina de 32 bits en comparación con la de 64 bits, lo que completaría la operación en UN solo ciclo de recuperación. Entonces, obviamente, para los datos más pequeños, no hay diferencia si mis procesadores funcionan a la misma velocidad. Los compiladores están diseñados para generar el código más eficiente para la arquitectura de la máquina de destino.

Nota: Curiosamente, no necesitamos ningún tipo de datos «largo», ya que su reemplazo (int, largo largo) ya está disponible en el estándar C99 .

En el siguiente programa, se definen todas las variables posibles con tipo de datos largo y sus tamaños se calculan e imprimen usando el operador sizeof() .

A continuación se muestra el programa C para encontrar el funcionamiento demostrado de la palabra clave larga:

// C program to demonstrate the working
// of long keyword
  
#include <stdio.h>
  
int main()
{
  
    long longType;
    int integerType;
    long int longIntegerType;
    long long int longLongIntegerType;
    float floatType;
    double doubleType;
    long double longDoubleType;
  
    // Calculate and Print the size of all variables
    printf("Size of longType is: %ld\n",
           sizeof(longType));
    printf("Size of integerType is: %ld\n",
           sizeof(integerType));
    printf("Size of longIntegerType is: %ld\n",
           sizeof(longIntegerType));
    printf("Size of longLongIntegerType is: %ld\n",
           sizeof(longLongIntegerType));
    printf("Size of floatType is: %ld\n",
           sizeof(floatType));
    printf("Size of doubleType is: %ld\n",
           sizeof(doubleType));
    printf("Size of longDoubleType is: %ld\n",
           sizeof(longDoubleType));
    return 0;
}

Salida :

Size of longType is: 8
Size of integerType is: 4
Size of longIntegerType is: 8
Size of longLongIntegerType is: 8
Size of floatType is: 4
Size of doubleType is: 8
Size of longDoubleType is: 16

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *