|
部分代码如下:
#include <rs232.h>
#include <cvirte.h>
...
////定义字符串变量
char gp[30];
char zp[40];
....
////初始化
gp[0]=0x0e;
gp[1]=0x1c;
......
gp[28]=0x0d;
gp[29]=0x0a;
zp[0]=0x0b;
zp[1]=0xcd;
.....
zp[38]=0x0d;
zp[39]=0x0a;
//////执行
OpenComConfig (2, "", 19200, 1, 8, 1, 512, 512);
FlushInQ(2);
FlushOutQ(2);
ComWrt (2, gp, 30);
............
OpenComConfig (2, "", 19200, 1, 8, 1, 512, 512);
FlushInQ(2);
FlushOutQ(2);
ComWrt (2, zp, 40);
.............
END.
原来是这样是可行的。现在我想把ComWrt函数中的第三个参数(红色的30 和40)用一个变量统一,这样最后两段代码就可以用一个子函数代替了。
我用strlen(gp) 发现得到的不是数组中元素的个数,而ComWrt()的返回值才是。
现在的问题是如何用变量表示数组中元素的个数?
我想到的最简单的方法是:用一个最大的数作为ComWrt函数中的第三个参数,比如在本例中都写 40 ,不知行否?
各位有什么好的方法? |
|