LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1311|回复: 3

options.c_cflag |= (PARODD | PARENB); /* 设置为奇效验*/

[复制链接]
发表于 2005-11-11 19:37:01 | 显示全部楼层 |阅读模式
请问该表达式options.c_cflag |= (PARODD | PARENB); /* 设置为奇效验*/  
如何理解“|= (PARODD | PARENB)”????
这是我在写串口编程时碰到的!options----是数据结构
                            c_cflag -----无符号整型
                            PARODD----是c_cflag 的一位
                            PARENB----是c_cflag 的一位
谢谢!
发表于 2005-11-11 21:17:00 | 显示全部楼层
那两个or
结果再和c_cflag or
结果再赋给c_cflag
回复 支持 反对

使用道具 举报

发表于 2005-11-11 21:56:02 | 显示全部楼层
options.c_cflag = options.c_cflag | PARODD | PARENB;
其实PARODD,PARENB也都是unsigned int,只不过他们除了标志位外,其余都是0。
假设PARODD是c_cflag 的第四位的话,那么PARODD=0x0000 0008
回复 支持 反对

使用道具 举报

发表于 2005-11-11 23:01:14 | 显示全部楼层
这样理解有误
虽然这里这样理解结果也是对的

绝对应该是后两个先or
然后再和前面的or
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表