0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

直接使用unsigned定义变量?

冬至子 来源:猿来如此 I See 作者:YJer 2023-07-22 10:49 次阅读

前言

在百度百科上看到实现 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 类型。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • gcc编译器
    +关注

    关注

    0

    文章

    78

    浏览量

    3378
收藏 人收藏

    评论

    相关推荐

    变量的声明和定义有什么区别和联系

    变量的声明和定义是编程中的两个重要概念,它们在语法和语义上有一些区别和联系。在本文中,我将详细介绍变量的声明和定义之间的区别和联系。 首先,让我们从
    的头像 发表于 12-07 16:14 1111次阅读

    这句定义变量的意思是什么?

    unsigned char xdata UART_BASE[256] _at_ 0xF400;unsigned char xdata UART1_BASE[256] _at_ 0xF500;unsigned char xdata
    发表于 01-16 17:22

    定义变量的位置

    。void delay(unsigned int i);//函数声名***it LE = P1^0;//定义输出使能控制脚在P1.0上char DelayCNT;//定义变量 //此表
    发表于 03-11 17:04

    xdata定义变量直接定义变量同名???

    在51单片机中。如下定义unsigned char xdata num;unsigned char num;这样定义会不会有问题???在模块中用的时候是用哪个
    发表于 05-12 14:50

    ARM定义特殊寄存器(*(volatile unsigned long *))的理解

    *) 0xE0028000))为例:作为一个宏定义语句,define是定义一个变量或常量的伪指令。首先( volatile unsigned long * )的意思是将后面的那个地址
    发表于 11-16 20:44

    dsp2000中unsigned char变量都是16位的

    在2812中定义unsigned char 变量为啥在仿真查看变量值的时候发现都是16位的呢
    发表于 11-14 10:43

    请问430变量定义volatile是什么意思?

    430中为什么有些变量定义是这样写的: volatile unsigned int i;这volatile是什么意思,这样定义有什么作用?
    发表于 03-29 02:58

    unsigned char i定义局部变量报错是怎么回事

    unsigned char i定义局部变量报错是怎么回事?该怎样去解决呢?
    发表于 01-19 06:45

    Python私有变量定义方法

    学过编程语言的人员,都知道私有变量在编程中必不可少,与Java和C语言用private关键字定义私有变量不同,Python是在变量前面加上双横杠(例如:__test)来标识,Pytho
    发表于 02-13 16:49 1663次阅读

    单片机C语言中变量定义方法解析

    #pragma rambank0 ;即以关键词#pragma开始,rambank0指明资料区块为第0块。 unsigned char m_acc; ;定义一个无符号字符型变量m_acc
    发表于 09-29 16:26 9366次阅读

    西门子PLC变量表中定义变量

    什么是变量变量是用于程序的,可以有不同值的变量。  根据应用范围,变量可分为以下几类 ●  局部变量:  局部
    的头像 发表于 12-23 16:25 2w次阅读
    西门子PLC<b class='flag-5'>变量</b>表中<b class='flag-5'>定义</b><b class='flag-5'>变量</b>

    C51 单片机的 C 语言中的变量定义与硬件之间的关系

    名 [= &所指向的变量名]指针变量的赋值:(不用 *)指针变量变量名 = 所指向的变量名修饰符修饰符释义unsigned无符号au
    发表于 11-23 16:51 3次下载
    C51 单片机的 C 语言中的<b class='flag-5'>变量</b><b class='flag-5'>定义</b>与硬件之间的关系

    C语言里函数的定义、子函数的使用及变量的作用域

    这篇介绍C语言里函数的定义、子函数的使用。接着介绍变量的作用域,定义全局变量、静态变量、只读变量
    的头像 发表于 04-28 11:23 6837次阅读

    oracle sql 定义变量并赋值

    在Oracle SQL中,变量是用来存储数据值的标识符。通过定义和使用变量,我们可以在SQL语句中使用它们来存储和处理数据,从而实现更灵活和动态的查询和操作。 在Oracle SQL中,定义
    的头像 发表于 12-06 10:46 2786次阅读

    西门子博途:如何定义PLC变量

    在 TIA Portal 中,可以在程序段中创建用户程序时直接创建变量。 以下步骤介绍了如何定义 PLC 变量以及将插入的 LAD 指令与 PLC
    发表于 12-29 18:10 2179次阅读
    西门子博途:如何<b class='flag-5'>定义</b>PLC<b class='flag-5'>变量</b>