📜  在C编程中长期使用关键字

📅  最后修改于: 2021-05-25 19:13:51             🧑  作者: Mango

long是Java中的关键字,表示Long数据类型。 long数据类型是64位二进制补码整数,其中:

  • 大小:64位
  • 值:-2 63至2 63 -1。

64位GCC编译器的输出大小为8,而在32位GCC编译器上,大小为4。因此,随编译器的不同而不同。现在的问题是,这里到底发生了什么?让我们以编译器如何在内部分配内存的方式来讨论它。

CPU通过将位置的地址提供给MAR(内存地址寄存器)来从RAM调用数据。找到该位置并将数据传输到MDR(存储器数据寄存器)。此数据记录在处理器中的一个寄存器中,以进行进一步处理。因此,数据总线的大小决定了处理器中寄存器的大小。现在,一个32位寄存器一次只能调用4个字节大小的数据。而且,如果数据大小超过32位,则需要两个读取周期才能将数据放入其中。与64位相比,这会降低32位计算机的速度,后者只能在一个获取周期内完成操作。因此,显然,对于较小的数据,如果我的处理器的时钟速度相同,则没有任何区别。编译器旨在为目标机器体系结构生成最有效的代码。

注意:有趣的是,由于C99标准已经提供了它们的替换(int,long long),因此我们不需要“ long”数据类型。

在下面的程序中,定义了所有可能的具有长数据类型的变量,并使用sizeof()运算符计算并打印了它们的大小。

下面是找到long关键字演示工作的C程序:

// C program to demonstrate the working
// of long keyword
  
#include 
  
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;
}

输出

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
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。