if(j != 0x80) 中 编译时出现warning: #174-D: expression has no effect

作者&投稿:陟纪 (若有异议请与网页底部的电邮联系)
C语言编译警告~

void
main(void);函数被定义多次,这么明显的错误肯定是其他.c文件定义了main函数了
另外你的这种写法完全不符合c99啊
void
main(void)
应该写成
int
main(void);或者
int
main(char
*argc,char*
argv[])

提示:表达式可能无效。
程序中可能存在不规范代码或有不影响程序运行的其他编程问题,比如界面显示上等

j<<1;这句是无效的,因为没有保存运算的结果。改为:
j = j << 1;

另外,你还要看一下,在这段代码之前j的值是否已经是确定的。

就是 j<<1;没有用啊,对程序来说没关系的,只是警告


邢台市18819932929: if(j != 0x80) 中 编译时出现warning: #174 - D: expression has no effect_
亢视安坤: jj = j 另外,你还要看一下,在这段代码之前j的值是否已经是确定的.

邢台市18819932929: 关于i2c总线,写数据时遇到一个疑问 j = 0x80; if((byte & j ) == 0) SDA = 0; else SDA = 1; -
亢视安坤: 位与是逐位相乘 00001111 X11100011--------------= 00000011 你的条件语句, 没有else,不能对SDA赋值.写成下面就等价了:SDA=0; if((byte & j ) == 1) SDA = 1;

邢台市18819932929: 在开发板上完成用P1口控制发光二极管以不同的形式循环点亮的功能.使8个发光二极管从右往左逐一点亮. -
亢视安坤: //如果要别的效果,只须把 P1=P1<<1;中的1改成2,4,6,8 #include void delay(unsigned int z); void main(void) {char k;P1 =0x01; //灯的初始值,P1口最低位为高,其它位为低delay(100);//延时,while(1){for(k=0;k<7;k++)//循环左移{P1...

邢台市18819932929: 单片机,流水灯c语言程序 -
亢视安坤: P1_0==0时 ,key()是死循环,程序不会往下走的 ,P1_0==1时只会执行 if(k==0) {i=0x01; for(j=0;j { P2=i;P1_1=!P1_1; i=(i flay();}

邢台市18819932929: C语言 参数传递问题 -
亢视安坤: #include<stdio.h>#include<malloc.h> char *gn1(char a[],int length) { char *b=(char *)malloc(length*sizeof(char)); int i,k=0; for(i=0;i<length;i++) { int j=0x80; for(;j;j>>=1) if(j&a[i]) b[k++]=1; else b[k++]=0; } return b; }; int main() { char a_1[6],*b_1; int i_1; ...

邢台市18819932929: 我的“写”函数有问题,换上别人的“写”函数就好了,不知道问题在哪,帮忙看看 -
亢视安坤: 建议这种语句都要加括号,则不能进入if后面的语句,如果dat最低位不是1,但是实际结果是if (dat&(0x80==0x80)),你想要的结果是if((dat&0x80) == 0x80)吧==操作符的优先级高于& 在 if(dat&0x80==0x80) 这一行中

邢台市18819932929: c语言int+j=0x80甚么意思
亢视安坤: 0x80是16进制的80,相当于10进制的128

邢台市18819932929: 如何从文件中读取单个汉字? -
亢视安坤: 关键看unicode码,英文和汉字的编码都不相同的 英文字符的unicode码的高字节为0,汉字不为0 比如:英文字符'E'的unicode码是0x0045 汉字“杭”的unicode码是0x676D

邢台市18819932929: 单片机,DS18B20,代码中 if(DQ) dat|=0x80; 这个一段是什么意思,为什么这样用谢谢!!!!! -
亢视安坤: 如果来自DQ的数据是高电平1,则把1放到dat的最高位,dat|=0x80 等价于 dat=dat | 0x80 0x80就是二进制的10000000,| 是按位或(加),所以就是把1加到dat的最高位了

邢台市18819932929: 18B20读温度操作中!if(DQ)value|=0x80;是什么意思 怎么理解? 还有value返回到哪里? -
亢视安坤: 1if(DQ) 表示总线被拉高,2value>>=1; 配合 value|=0x80;循环8次将每位送到value中,完成一字节读取.3 value 反回到函数变量中read_18B20_byte(),因为 uchar read_18B20_byte()定义就是个变量 可以uchar x ; x=read_18B20_byte();将value值送到x中

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网