#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char* lpszPropertyName)
{
#define Dot "dot_25" //定义变量名
if ( GetTagDWord(Dot )&0x0010)
{ SetTagDWord(Dot ,GetTagDWord(Dot )&0xFFEF);}
else
{ SetTagDWord(Dot ,GetTagDWord(Dot )|0x0010);}
}
问题补充:
能详细解释一下这段程序具体含义吗?最好能精确到每一行。
在这提前谢谢各位了。
最佳答案
双字变量dot_25的bit4取反。
__________________________________________________________________________________
if ( GetTagDWord(Dot )&0x0010) //与运算,如果bit4=0,则结果为0,如果bit4=1,那么结果为0x0010
{ SetTagDWord(Dot ,GetTagDWord(Dot )&0xFFEF);} //与运算,bit4和0进行与运算,其他位和1进行与运算,结果是bit4置0,这里如果变量真是一个双字0xFFEF应为0xFFFFFFEF,否则高位字也被清零了
else
{ SetTagDWord(Dot ,GetTagDWord(Dot )|0x0010);} //或运算,bit4和1进行或运算,其他位和0进行或运算,结果是bit4置1
建议里看一下C语言的逻辑运算方面的内容
提问者对于答案的评价:
谢谢。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc263779.html