基于另一个变量设置一组变量的有效方法?

时间:2018-05-11 08:37:06

标签: c function variables

我想设置一组2-4个变量,它们的值取决于第5个变量。我可以通过一长串func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell : NoticeListCell = tableView.dequeueReusableCell(withIdentifier: "noticeCell", for: indexPath) as! NoticeListCell let notice = notList[indexPath.row] cell.setValues(notice: notice) return cell; } 来做到这一点,我想知道是否有一个我不知道可以学习的技巧,更优雅地做到这一点?我对“C”还是很新。

例如:

if else

我打算在远离/*some code... x is read from stdin...*/ if (x == 1) { a = 10; b = 100; } else if (x == 2) { a = 10; b = 50; c = 100; } else if (x == 3) { a = 0; b = 25; c = 50; d = 100; } /* and so on...*/ 的函数中使用指针设置main()ab来完成所有操作...但我省略了这是为了简单。

干杯,

w ^

1 个答案:

答案 0 :(得分:0)

如果你觉得自己喜欢乱砍,你可以做这个奇特的伎俩:

typedef enum
{
    CASE_1_ = 1,
    CASE_2_,
    CASE_3_

}states;

void caseA(int *a, int *b, int *c, int *d) {
    *a = 10;
    *b = 100;
}

typedef void (*fp)(int *, int *, int *, int *);

fp proccess[] = {[CASE_1_] = caseA, [CASE_3_] = caseB, [CASE_3_] = caseC};

您需要做的只是proccess[x]();,而且您不需要任何switchif-else语句。