• 64位系统/32位系统下/8位CPU的数据宽度


    不同的编译器根据不同的 64 位模型有所不同。

    比如 Visual C++,从第一个支持 64 位的版本起,一直就是使用 LLP64 内存模型,也就是说,编译出的代码除了 long 和指针是 64 位,int 保持 32 位不变。
    可以运行下代码得到结果。

    #include <stdio.h>
    int main()
    {
    printf("char: %d ",sizeof(char));
    printf("char *: %d ",sizeof(char *));
    printf("short: %d ",sizeof(short));
    printf("short *: %d ",sizeof(short *));
    printf("int: %d ",sizeof(int));
    printf("int *: %d ",sizeof(int *));
    printf("long: %d ",sizeof(long));
    printf("long *: %d ",sizeof(long *));
    }

    在一台x86_64系统上运行结果:
    char: 1
    char *: 8
    short: 2
    short *: 8
    int: 4
    int *: 8
    long: 8
    long *: 8

    在一台i386系统上运行结果:
    char: 1
    char *: 4
    short: 2
    short *: 4
    int: 4
    int *: 4
    long: 4
    long *: 4

    在32位中,short=2 int=long=4
    在64位中,short=2,int=4,long=8

    in cc2530, a 8051 mcu:
    
    sizeof int = 2
    sizeof short = 2
    sizeof char* = 2 sizeof long = 4 sizeof float = 4 sizeof double = 4

    1. 指针类型表示的是内存寻址范围,所以在32位系统,8 * 4 = 32,而64位系统 8 * 8 = 64;这个是没错的;
    2. C99标准规定:sizeof(short) <= sizeof(int) <= sizeof(long).

    http://zhidao.baidu.com/link?url=wrvmVbgFV-yPVAq_6O5O8Kf27QCvyCsPYjts7Z1zVXAxDBAS0RhrdM_Y-jiutPMmRgQWkByUwJ2HBMr-rvZP-_
  • 相关阅读:
    css预编译器stylus
    使用element的upload组件实现上传图片功能
    《百年孤独读后感》
    socket_server
    socket-client
    面向对象基础-初步介绍
    re正则表达式
    实战2-计算器:输入这段公式("1
    python-常用模块
    实战-ATM+购物车项目软件目录规范
  • 原文地址:https://www.cnblogs.com/mylinux/p/4022347.html
Copyright © 2020-2023  润新知