减少C中的重复

时间:2014-12-15 23:33:58

标签: c

我还没有包含任何代码,因为它对我的问题并不重要,但我说我有if (g_sound == 1){printf("\a");}这样的陈述(当然我只是使用一个较短的例子),怎么可能我在我的程序中使用此代码而没有那么多的重复性?是否存在某些类型的变量,您可以链接到该变量并执行该变量中的代码?所以我的一半代码不是一遍又一遍......所有的帮助都非常感谢! 更新:谢谢大家的有用评论,我发现使用函数是最优的,因为它是我需要执行的20行代码!再次感谢!

1 个答案:

答案 0 :(得分:1)

如果声明真的那么简单(或至少是最优),那么使用宏:

#define THIS_IS_NOT_A_FUNCTION(X) if (x == 1){ printf ("\a");}

然后像这样使用宏:

// do some tedious task that I can't be bother typing out fully:
THIS_IS_NOT_A_FUNCTION(g_sound);

正如David C. Rankin在评论中指出的那样,宏在编译前的时间内扩展到了定义值,因此不需要调用函数的开销。缺点是,如果过于宽松地使用宏,代码就会变得不可读。

如果语句是一个复杂的操作,可能需要写一个函数并调用它。