一段C脚本,求解释

#include "apdefap.h"

int gscAction( void )
{
static int tic;
//tic=GetTagWord("MM"); //返回类型:WORD 


if (tic>=360) tic=30;
else (tic=tic+30);
 //返回类型:BOOL 
SetTagWord("rotate",tic); //返回类型:BOOL 


// WINCC:TAGNAME_SECTION_START
// syntax: #define TagNameInAction "DMTagName"
// next TagID : 1
// WINCC:TAGNAME_SECTION_END

// WINCC:PICNAME_SECTION_START
// syntax: #define PicNameInAction "PictureName"
// next PicID : 1
// WINCC:PICNAME_SECTION_END
 
return 0; 
}

最佳答案

static int tic;
//tic=GetTagWord("MM"); //返回类型:WORD 
if (tic>=360) tic=30;
else (tic=tic+30);
 //返回类型:BOOL 
SetTagWord("rotate",tic); //返回类型:BOOL 

static int tic; 
定义了一个静态变量 tic ,静态变量可以自动保存上一次的值,变量的生命周期中只初始化一次,值等于0.也就是说这个变量在静态存储区被划分出来的时候就初始化为0。以后都保留了最后一次操作后的值。这个就是为什么tic=GetTagWord("MM");可以被注释掉的原因。

if (tic>=360) tic=30;
else (tic=tic+30);
是判断tic 是不是超过或等于360了 超过了就赋给tic值为30
如果小于360就自增30

这个程序被调用一次 tic就变化一次  变化的值是 30 60 90 120 ……330 360 这样一直循环下去,每变化一次的同时将这个tic的值传到rotate这个变量里面。变化的频率随程序触发的频率决定。

实现的功能就是每触发一次这个程序事件,角度就转过30°。

提问者对于答案的评价:
感谢指点!很有帮助,学习啦

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc251647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2018年12月5日 下午2:54
下一篇 2018年12月5日

相关推荐