C语言宏定义立即数后缀U的含义

news2024/11/28 6:53:59

背景

在看开源的相关代码中,会有下面的宏定义用法

#define    TEST_VALUE    (0xFFFFFFFFU)

其和下面的宏定义区别是什么呢?

#define    TEST_VALUE    (0xFFFFFFFF)

答疑

U表示 unsigned 无符号后缀,关于后缀的表述C99标准有如下定义:

 (1)  没有后缀的情况

10进制和16进制书写立即数,编译器对其解析是有差异的。

对于10进制:始终认为立即数是有符号类型的。

对于16进制:立即数的符号类型取决于其值的大小。具体看立即数是否落在哪个类型区间,即表格中类型:int,unsigned int;long int,unsigned  long int ;long long int,unsigned  long long int;

(2)有后缀U或u的情况

10进制和16进制书写立即数,编译器对其解析是一致的,始终认为其是无符号类型的

(3)其它情况

注:8进制和18进制现象一样,故只表述16进制

验证

(1)没有后缀的情况

10进制:立即数较小VS立即数较大场景对比

测试方法和结果如下:

 测试结论:对于10进制立即数,没有后缀的情况下,其进行算术操作后的结果始终是有符号数

16进制:立即数较小VS立即数较大场景对比

测试方法和测试结果如下:

  测试结论:对于16进制立即数,没有后缀的情况下,其进行算术操作后的结果始终是有符号数取决于立即数的大小,具体看立即数是否落在哪个类型区间,即表格中类型:int,unsigned int;long int,unsigned  long int ;long long int,unsigned  long long int。

(2)有后缀的情况

10进制:立即数较小VS立即数较大场景对比

测试方法和结果如下:

  测试结论:对于10进制立即数,有后缀的情况下,其进行算术操作后的结果始终是无符号数

16进制:立即数较小VS立即数较大场景对比

测试方法和结果如下:

测试结论:对于16进制立即数,有后缀的情况下,其进行算术操作后的结果始终是无符号数

总结

(1)验证了C标准,关于对立即数符号类型的定义,符合预期。

(2)在C或C++编程的时候,应当对立即数后面加后缀U或L,以明确表示其符合类型。

(3) 避免立即数进行运算的时候,编译器隐含的操作,使得结果不符合预期

(4) 函数重载的时候,能基于明确的参数类型,调用正确的函数

(5) ARM官方ATF Demo源码中,对于C代码编程,关于立即数都会加后缀修饰

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/142887.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

私有部署V3.8:自建内部应用库和预置应用

2022年12月27日,明道云私有部署V3.8正式发布。除了同步更新明道云SaaS版V7.8的功能以外,V3.8还将应用库功能下放至私有部署,私有部署用户可以自建企业内部应用库,并且给新创建的组织预置应用了。 注意:该功能仅面向明…

CSS知识点精学4-学成项目案例实现

根目录 先写好项目根目录 网站的首页,所有网站的首页都叫index.html,因为服务器找首页都是找index.html 一般网站页面配套的css文件与网站设置为相同的名字 比如index.html搭配index.css 准备工作 首先,我们发现没一个模块都是居中显示的,抓住一个边…

Python压缩模块gzip

文章目录初步认识压缩和解压缩函数初步认识 gzip是用于处理gzip格式的模块,相当于是zlib模块面向文件的一个应用,其最常用的函数为open。 有了open,那就得演示一下文件读写 import gzip with gzip.open(test.txt.gz, wb) as f:f.write(&qu…

Halcon笔记1

一、前言 最近来触碰一下halcon,一直以来作为ai算法工程师,虽然知道halcon,但是一直也没有用过 对于我们用户来说,halcon与opencv的差距主要在下面: (1)halcon是闭源的,商业的软件…

ATJ2158 LRADC的使用

LRADCLRADC对应引脚LRADC采样电压范围及位数使用LRADC涉及到的驱动文件如何使用不同的LRADC通道LRADC对应引脚 LRADC对应引脚备注LRACDC1WIO0/WIO1LRACDC2GPIO8/GPIO20LRACDC3GPIO9/GPIO21LRACDC4GPIO35LRACDC5GPIO5LRACDC6无没有找到相应的引脚LRACDC7GPIO63 LRADC采样电压范…

剑指 Offer 22. 链表中倒数第k个节点

剑指 Offer 22. 链表中倒数第k个节点 题目 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有 6 个节点,从头节点开始&#xff0…

基于R的Bilibili视频数据建模及分析——聚类分析篇

基于R的Bilibili视频数据建模及分析——聚类分析篇 文章目录基于R的Bilibili视频数据建模及分析——聚类分析篇0、写在前面1、数据分析1.1 聚类分析1.2 聚类统计1.3 系统聚类1.4 Kmeans与主成分分析2、参考资料0、写在前面 实验环境 Python版本:Python3.9Pycharm版本…

python打包windows服务 开机自启动守护进程

自启动方法一:系统自启动设置python程序开机自启动1、创建一个xxx.bat文件,右键编辑2、在xxx.bat文件里面写入以下内容后保存:(可以按照如下流程自己去cmd中测试一下)d: #如果需要开机自启动的python程序在c盘&#xf…

Typora插图免费上传云端教程(太香了)

1、前言 我们平时在使用Typora时,文档中的图片一般是保存在本地,很方便,但是有些场景也有问题,比如我全部拷贝到有道云笔记中或者全部拷贝到CSDN中去发布时,你会发现,所有图片都无法预览了,此时…

不要为了“分库分表”而“分库分表”

数据库瓶颈 分库分表 分库分表工具 分库分表带来的问题 什么时候考虑分库分表 数据库瓶颈 不管是IO瓶颈还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载的活跃连接数的阈值。在业务service来看, 就是可用…

解析HTTP请求报文(GET、POST)

目的: 一个WEB服务器需要解析客户端(浏览器)发来的请求,两种常见的请求方式是GET和POST。 GET的请求格式: GET请求没有请求体只有请求头GET请求的请求参数放在URL后加上一个"?"的后面,参数以…

时序图文献精度——1.2018-KDD-Embedding Temporal Network via Neighborhood Formation

Embedding Temporal Network via Neighborhood Formation Abstract 作者发现,在现有的研究中,以节点间顺序交互事件为特征的网络的完整时间形成过程还很少被建模,在这边文章中,作者引入邻域形成序列的概念来描述节点的演化&…

第四篇 - 对象的深层劫持

一,前言 上篇,主要介绍了在 Vue 的数据初始化流程中,对象属性的单层劫持是如何实现的 回顾一下,主要涉及以下几个核心点: data 为函数和对象的处理,及当 data 为函数时的 this 指向问题Observer 类&…

一文弄清楚vue中的computed和methods

1.实现业务我们现在需要实现一个业务,就是我们有一个输入框,之后我们修改输入框的值,就在此时输入框的值会呈现到页面中的h1标签上去2.利用Vue中的插值语法实现业务2.1什么是插值语法?插值语法就是vue中用来存放预留值得方法&…

【前端】CSS盒子模型

五、盒子模型 1.1盒子模型的介绍 盒子的概念 页面中的每一个标签,都可看做是一个“盒子”,通过盒子的视角方便的进行布局浏览器在渲染(显示)网页时,会奖网页中的元素看作是一个个的矩形区域,我们也形象地…

<Python的函数(1)>——《Python》

目录 1. 函数 2. 语法格式 2.1 创建函数/定义函数 ​2.2 调用函数/使用函数 3. 函数参数 4. 函数返回值 5. 变量作用域 后记:●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教&…

Android input 事件分发 -- inputReader

inputReaderinputReaderinputReader 这个章节主要是围绕inputReader 、inputReaderThread进行的,老规矩先上时序图通过前面我们已经知道了InputReader和InputReaderThread都是在InputManager的构造函数里面new出来的,然后InputReaderThread的启动是在Sys…

图文详解:内存总是不够,我靠HBase说服了Leader为新项目保驾护航

最近在工作中用到了 Hbase 这个数据库,也顺便做了关于 Hbase 的知识记录来分享给大家。其实 Hbase的内容体系真的很多很多,这里介绍的是小羽认为在工作中会用到的一些技术点,希望可以帮助到大家。 可以这么说互联网都是建立在形形色色的数据…

剑指offer----C语言版----第十天

目录 1. 二进制中 1 的个数 1.1 题目描述 1.2 可能引起错误的解法 1.3 常规解法 1.4 思路优化 1. 二进制中 1 的个数 原题链接: 剑指 Offer 15. 二进制中1的个数 - 力扣(LeetCode)https://leetcode.cn/problems/er-jin-zhi-zhong-1de-ge-shu-lcof…

电路方案分析(十五)符合 EMC 标准的汽车制动灯和尾灯设计方案

符合 EMC 标准的汽车制动灯和尾灯设计方案 tips:TI设计方案参考分析:TI Designs:TIDA-01374 1.系统描述 1.1关键参数 2.系统概述 2.1系统框图 2.2关键元器件 3.设计原理 3.1双重亮度设计 3.2 电荷泵设计 3.4 LED故障设计 3.3 MOSFET驱动电…