鱼C论坛

 找回密码
 立即注册
查看: 2365|回复: 2

关于long int和long long int占用字节问题

[复制链接]
发表于 2020-2-20 22:14:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在小甲鱼的P6视频数据类型中,有一段代码打印不同数据类型在系统中所占用的字节是多少,在这里我遇到两个问题,一个是编译的时候出现警告,
warning: format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long unsigned int’ [-Wformat=]
  printf("int = %d\n", sizeof(int));
这里我百度了一下得知要把%d换成长整型%ld或%u无符号类型解决,但是在小甲鱼的视频中编译是没有报这个警告的,代码是一样的。

另一个是视频里的运行结果,long int = 4 , long long int = 8,但是我自己在电脑上运行的结果是long int = 8,  long long int = 8, 我百度了一下,好像网上的都是long int
= 4

我不知道是不是操作系统的问题,我的编译环境是win10自带的linux子系统,安装了ubuntu,虽然这两个问题好像并不大,但是就是想知道原因,不然无法集中学习,希望大神可以解答一下我这两个问题,感激不尽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-2-21 14:47:19 | 显示全部楼层
关于计算机的,这个不是语言的问题,小甲鱼装的是32位的Linux(我不会用Linux,所以没看小甲鱼的C),而你的电脑应该是64位的,这个不影响学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-22 18:10:42 | 显示全部楼层
int, long int, long long int 的长度与计算平台相关的.32位和64位机给出的结果肯定不同啊.
对于32位机:int:4字节 long int:4字节 long long int:8字节
对于64位机:int:4字节 long int:8字节 long long int:8字节

可以用下面的代码测试一下:
#include <stdio.h>
int main(void)
{
        printf("int: %ld\n", sizeof(int));
        printf("long int: %ld\n", sizeof(long int));
        printf("long long int: %ld\n", sizeof(long long int));
        printf("long : %ld\n", sizeof(long));
        printf("char : %ld\n", sizeof(char));
        printf("short : %ld\n", sizeof(short int));
        printf("float : %ld\n", sizeof(float));
        printf("double : %ld\n", sizeof(double));

        return 0;
}

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 02:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表