iCAx开思工具箱
标题:
问题请教,关于KF函数
[打印本页]
作者:
thermal
时间:
2005-12-5 11:02
标题:
问题请教,关于KF函数
大家好,请问一下extern int UF_KF_create_child_rule (
tag_t part_of_rule,
const char * name_chain,
const char * rule_name,
const char * child_class_name,
int num_parameters,
char ** parameter_names,
char ** parameter_rules,
char ** generated_name );
第七项中是不是只能接受 char* rules[ ]={"10","5"}这样的数字,请问怎么能接受变量如 char* rules[ ]={"len","width"} 把len, width在外面赋值怎么传递不进去呢?
作者:
thermal
时间:
2005-12-6 09:21
有没有知道的啊 帮帮忙啊
作者:
thermal
时间:
2005-12-7 09:23
有人知道吗 帮帮忙啊
作者:
Afang
时间:
2005-12-7 12:34
自己包的函数,看看就应该知道了吧……
int KF_create_child_rule(char *class_name, char *child_name,
char **para_name, char **para_value,
int count)
{
int response=0;
char rule_content[600];
char temp_string[133];
int i;
/*create the child rule*/
sprintf(temp_string, "{class;%s;",class_name);
strcpy(rule_content,temp_string);
if (count > 0)
{
for (i = 0; i< count; i++)
{
sprintf(temp_string, "%s;%s;",para_name[i],para_value[i]);
strcat(rule_content,temp_string);
}
}
strcat(rule_content,"}");
response = UF_KF_create_rule("root:",
child_name,
"child",
rule_content,
NULL );
return response;
}
作者:
thermal
时间:
2005-12-7 13:26
好象不行啊 afang,我要实现参数化,就是要把变量的值赋给para_value[i]的,但是para_value[i]只能接受字符串的 就象在外面int len=10, para_value[i]只能接受"10",而不能接受"len",这样怎能实现参数化呢?
作者:
kingwang
时间:
2005-12-7 14:14
需要两个同时赋值:
parameter_names[0] = "len";
parameter_rules[0] = "10";
作者:
thermal
时间:
2005-12-7 15:40
你可能理解错我的意思了,我的意思是怎么把外面的值赋给parameter_rules,以达到改变外面的值来驱动模型的更新,也就是更新模型的参数 所以parameter_rules[i]不能看做是常量,而是我在外面定义的一个变量,请问以上方法能实现吗
作者:
Afang
时间:
2005-12-7 16:39
可以的,KF的参数更新就是重新创建一个同名的child rule
欢迎光临 iCAx开思工具箱 (https://t.icax.org/)
Powered by Discuz! X3.3