小程序
传感搜
传感圈

直接使用unsigned定义变量?

2023-07-26 21:13:27
关注

前言

在百度百科上看到实现 itoa 函数的源代码,里面有一行代码引起了我的兴趣:

1unsigned unum;

通常,我们定义无符号的一个变量,一般采用如下方式:

1unsigned char variable;
2unsigned short variable;
3unsigned int variable;

那么省略 unsigned 后面的数据类型关键字,直接使用 unsigned 定义变量,这个变量会是什么类型的呢?我查了一下,unsigned若省略后一个关键字,大多数编译器都会认为是unsigned int,是不是这样呢,我们可以写个简单的代码验证一下。

测试

我测试的gcc编译器版本为 7.5.0 :

测试代码如下:

1int main(void)
2{
3    unsigned val = 0;
4    printf("unsigned int: %d byten", sizeof(unsigned int));
5    printf("unsigned: %d byten", sizeof(val));
6    return 0;
7}

输出:

1unsigned int: 4 byte
2unsigned: 4 byte

可以看到,在我使用的这个版本的 gcc 编译器下测试,unsigned 后面省略数据类型关键字定义出来的变量,其占用的字节长度与 unsigned int 类型定义的变量占用的字节长度相同,所以在我这个版本的gcc编译器下,unsigned 后省略一个关键字,会认为是unsigned int 类型。

您觉得本篇内容如何
评分

评论

您需要登录才可以回复|注册

提交评论

广告

大怪科学

这家伙很懒,什么描述也没留下

关注

点击进入下一篇

MATLAB变量和数据类型的基本介绍

提取码
复制提取码
点击跳转至百度网盘