结构中成员的不同值具有相同的功能
Same function for different values of members in a structure
我正在尝试对 C 中结构成员的不同值使用相同的函数。实际上,我的函数很大,我不想一次又一次地重写它。
那么,还有其他方法可以实现吗?
typedef struct {
int xpos;
char label[30];
fielddesc field;
} editordesc;
我想使用相同的功能更改 xpos 和其他一些成员:
void edit(void)
{
editordesc setf[] = { 5,"Description", 40, 0, plu.rec.DESCRIPTION };
// code
}
void edit1(void)
{
editordesc setf[] = { 10,"Date", 50, 10, plu.rec.Date };
// code
}
编辑:
我想在我的 main() 中多次使用 edit(),每次我唯一想更改的只是 setf[] 中的一些值。那么有什么替代方法吗?我不想一次又一次地用不同的名称重写同一个函数,而只是改变 setf[]
的值
有多种方法。
将结构作为函数的参数。
void edit(editordesc var);
并调用该函数两次。
或者有结构数组并循环它。
void edit(void)
{
editordesc setf[] = {{ 5,"Description", 40, 0, plu.rec.DESCRIPTION },
{ 10,"Date", 50, 10, plu.rec.Date }};
for (unsigned int i = 0; i < sizeof(setf)/sizeof(setf[0]); i++) {
//printf("%d",setf[i].xpos);
//your code
}
}
我正在尝试对 C 中结构成员的不同值使用相同的函数。实际上,我的函数很大,我不想一次又一次地重写它。 那么,还有其他方法可以实现吗?
typedef struct {
int xpos;
char label[30];
fielddesc field;
} editordesc;
我想使用相同的功能更改 xpos 和其他一些成员:
void edit(void)
{
editordesc setf[] = { 5,"Description", 40, 0, plu.rec.DESCRIPTION };
// code
}
void edit1(void)
{
editordesc setf[] = { 10,"Date", 50, 10, plu.rec.Date };
// code
}
编辑: 我想在我的 main() 中多次使用 edit(),每次我唯一想更改的只是 setf[] 中的一些值。那么有什么替代方法吗?我不想一次又一次地用不同的名称重写同一个函数,而只是改变 setf[]
的值有多种方法。
将结构作为函数的参数。
void edit(editordesc var);
并调用该函数两次。
或者有结构数组并循环它。
void edit(void) { editordesc setf[] = {{ 5,"Description", 40, 0, plu.rec.DESCRIPTION }, { 10,"Date", 50, 10, plu.rec.Date }}; for (unsigned int i = 0; i < sizeof(setf)/sizeof(setf[0]); i++) { //printf("%d",setf[i].xpos); //your code } }