在生成随机数的时候,经常覆写同一个语句,于是想着以函数的形式出现,在需要的时候不用复制代码,直接调用函数就行了,但是C语言是面向结构的,定义一个函数没有Java那么简单,但是可以使用结构体的形式实现。
首先定义一个数组类型的结构体,里面包含一个数组:
struct String{
char tempStr[100];
};
然后定义返回String类型的结构体函数
struct String generateParameter(int
length){
struct String a;
sprintf(a.tempStr,"%s",""); //每次初始化的时候tempStr的值为空,否则会接着上次的值
//接着赋值。
for(i = 0; i < length; i ++){
randNum = rand()R;
sprintf(a.tempStr,"%s%c",a.tempStr,character_set[randNum]);
lr_output_message(a.tempStr);
}
return a;
}
然后在Action中调用
Action()
{
struct String b;
struct String c;
struct String d;
b = generateParameter(3);
c = generateParameter(16);
d = generateParameter(16);
lr_output_message(b.tempStr);
lr_output_message(c.tempStr);
lr_output_message(d.tempStr);
}
整体代码如下:
char character_set[52] = {'A', 'B', 'C', 'D',
'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N','O', 'P','Q', 'R',
'S', 'T','U', 'V', 'W', 'X','Y', 'Z','a', 'b', 'c', 'd', 'e', 'f',
'g', 'h', 'i', 'j', 'k', 'l','m', 'n', 'o', 'p', 'q', 'r','s', 't',
'u', 'v', 'w', 'x','y','z'};
int randNum, i;
//构造BusAddrLn1随机数
struct String{
char tempStr[100];
};
struct String generateParameter(int length){
struct String a;
sprintf(a.tempStr,"%s","");
for(i = 0; i < length; i ++){
randNum = rand()R;
sprintf(a.tempStr,"%s%c",a.tempStr,character_set[randNum]);
lr_output_message(a.tempStr);
}
return a;
}
Action()
{
struct String b;
struct String c;
struct String d;
b = generateParameter(3);
c = generateParameter(16);
d = generateParameter(16);
lr_output_message(b.tempStr);
lr_output_message(c.tempStr);
lr_output_message(d.tempStr);
}