zoukankan      html  css  js  c++  java
  • int 和 long的区别

    数据模型决定了C语言中基本数据类型与数据宽度的对应关系。我们常用的32位模型称为ILP32,而64位模型有三种:LP64、LLP64和ILP64。在64位模型中,指针一定是64位的,但是int和long的宽度则在不同的数据类型中有不同的定义。如下表:

    datatype LP32 ILP32 LLP64 LP64 ILP64
    char 8 8 8 8 8
    short 16 16 16 16 16
    int 16 32 32 32 64
    long 32 32 32 64 64
    long long 64 64 64 64 64
    pointer 32 32 64 64 64

      从前的DOS是应该是LP32;现在的Windows 32和Linux 32是ILP32;在即将流行的64bits世界,Windows x64 版采用的是LLP64模型,Linux64采用的是LP64模型,用gcc编译时可以指定-m32按照ILP32模型进行编译。

      指针大小跟机器字长相关。为了兼容,在写C代码时,用int声明32bit整数,用long long声明64bit整数。

    按照POSIX的规定,一个整型的正确格式化串为:

    sign char short int long long long
    signed %hhd %hd %d %ld %lld
    unsigned %hhu %hu %u %lu %llu
  • 相关阅读:
    14、python基础
    13、Python入门
    12、运算符、流程控制
    10、Linux(六)
    Windows 分层窗口 桌面上透明 Direct3D
    Windows 进程间通信 共享内存
    Linux 库的使用
    FFmpeg 命令行
    FFmpeg 摄像头采集
    FFmpeg input与output 函数流程
  • 原文地址:https://www.cnblogs.com/biglucky/p/4167666.html
Copyright © 2011-2022 走看看