(无符号数>=0)引起的警告
头文件
#define FOO 0
c文件
void f(unsigned int n)
{
if (n >= FOO)
{
dosomething();
}
按照程序的逻辑,不管FOO的定义是0还是1还是多少,都是要做这个比较的。
编译器给了个警告,认为无符号数和0比较没有任何意义。
老板不允许有任何警告,但是我又不想把这个比较去掉,因为万一哪天有人改了头文件,比如#define FOO 10,那就又需要加这个比较了,但是很可能就想不起来。
有没有两全其美的好办法?
我用的编译器是ARM的realview
谢谢了。
#define FOO 0
c文件
void f(unsigned int n)
{
if (n >= FOO)
{
dosomething();
}
按照程序的逻辑,不管FOO的定义是0还是1还是多少,都是要做这个比较的。
编译器给了个警告,认为无符号数和0比较没有任何意义。
老板不允许有任何警告,但是我又不想把这个比较去掉,因为万一哪天有人改了头文件,比如#define FOO 10,那就又需要加这个比较了,但是很可能就想不起来。
有没有两全其美的好办法?
我用的编译器是ARM的realview
谢谢了。
...全文
相关推荐
C语言有符号数和无符号数运算
本文介绍了C语言中有符号数和无符号数之间进行运算的规则。
警告:吸烟有害健康;程序员:我不关心警告,只关心错误
关注、星标公众号,直达精彩内容ID:技术让梦想更伟大作者:李肖遥哇,功能终于都实现啦,告一段落了,好开心,,,嗯?我看看你代码?,怎么还有这么多warnning?啊?warnni...
《编译原理》实验 识别无符号数的词法分析器设计实现
一、实验目的与要求 通过编写并上机调试一个词法分析程序,掌握在对程序设计语言的源程序进行扫描的过程中,将其分解成各类单词的词法分析方法。 二、实验内容 选取无符号数的算术四则运算中的各类单词为识别对象,要求将其中的各个单词识别出来。 输入:由无符号数和+,-,*,/, ( , ) 构成的算术表达式,如1.5E+2-100。 输出:对识别出的每一单词均单行输出其类别码(无符号数的值暂不要求计算)。
无符号数词法分析
题目要求:从键盘上输入一字符串(包括字母、数字等),最后以";"结束,编写程序识别出其中的无符号数。 报告内含代码
C语言中无符号数和有符号数之间的运算
C语言中有符号数和无符号数进行运算默认会将有符号数看成无符号数进行运算,其中算术运算默认返回无符号数,逻辑运算当然是返回0或1了。下面通过一个例子给大家分享C语言中无符号数和有符号数之间的运算,一起看看吧


