解决宏中的警告

普里莫兹·克拉里(PrimožKralj)

我正在处理一些产生警告的宏。其中之一是ConvToSector(x)

#define STARTSECTOR 0x0002000u
#define STARTLSB    6u
#define STARTNUM    7u
#define TRICKYLSB   3u
#define ConvToSector(x) (((x)>=STARTSECTOR) ? ((((x)-STARTSECTOR) >> STARTLSB) + STARTNUM) : ((x) >> TRICKYLSB))

生产

conversion to 'uint8_t' from 'long unsigned int' may alter its value [-Wconversion]

我知道所有常量都是无符号的,并且ConvToSector(x)的输入是无符号的整数(uint32_t)。那么哪里long unsigned int来的呢?

基思·汤普森(Keith Thompson)

警告是正确的;long unsigned int转换uint8_t可以更改其值。

您可以通过不指定-Wconversion选项(默认情况下未启用选项,因此必须对其进行设置)或使用强制转换而不是隐式转换来禁止警告没有更多信息,我无法确切确定应在哪里添加演员表。

同样,对于long unsigned int消息中提到类型,很难看到更多的代码。这很可能uint32_t是typedef的unsigned long int-但快速实验表明,即使gcc是typedef ,gcc的错误消息也会引用已声明的类型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

解决SAS中的宏变量

来自分类Dev

解决宏变量名称SAS中包含%eval的宏

来自分类Dev

如何在Perl中解决此警告

来自分类Dev

解决WPF中“从未使用过”警告

来自分类Dev

PCH警告:标头停止不能在宏或#if块中

来自分类Dev

在宏中警告打印一个值

来自分类Dev

如何抑制源文件中特定宏定义的零参数的GCC可变参数宏参数警告

来自分类Dev

来自宏的警告

来自分类Dev

来自宏的警告

来自分类Dev

可变宏警告

来自分类Dev

为什么在解决SAS中的宏时宏会创建领先空间?

来自分类Dev

在宏中展开宏

来自分类Dev

在宏中展开宏

来自分类Dev

解决Java中的“未经检查的警告”,避免使用@suppressWarnings

来自分类常见问题

如何在Webstorm中应对大量未解决的变量警告?

来自分类Dev

如何解决共享主机中的严格警告?

来自分类Dev

如何解决Angular中的URL消毒器警告?

来自分类Dev

如何解决Swapon中的不安全警告?

来自分类Dev

如何解决android Studio中的依赖警告?

来自分类Dev

对C中自引用宏有任何解决方法?我想附加一个宏

来自分类Dev

无法解决:“ NULL宏的定义”

来自分类Dev

如何在Objective-C中禁止显示“宏重新定义”警告

来自分类Dev

ATL宏END_CONNECTION_POINT_MAP中的警告C4640

来自分类Dev

在eclipse中,将宏重新定义视为错误而不是警告

来自分类Dev

避免在_generic宏中“警告:从大小不同的整数[-Wint-to-pointer-cast]强制转换为指针”

来自分类Dev

iOS9中的新警告:宏'TARGET_OS_IOS'的歧义扩展

来自分类Dev

警告:在库中找不到宏“ AM_GLIB_GNU_GETTEXT”

来自分类Dev

在通用位掩码宏中消除 -Wshift-count-overflow 警告

来自分类Dev

解决SBT中Scala宏和编译器框架的依赖性

Related 相关文章

热门标签

归档