在我的代码中,我经常使用一个公式来返回一个2D数组的索引:
cells[cellToMarkX + cellToMarkY * xSize]
// ...
if (cells[j + i * xSize] == 0)
//...
else if (cells[j + i * xSize] >= 5)
//..
cells[cellToMarkX + cellToMarkY * xSize] += 4;
我不确定是否应该创建一些像
这样的功能getCell(int x, int y)
或者应该是不必要的,我更喜欢使用宏?
答案 0 :(得分:1)
特别是在您提供的示例中,您可能还需要考虑预先计算,如:
int myindex = j + i * xSize;
if (cells[myindex] == 0)
....
else if (cells[myindex] >= 5)
但是为了更直接地回答你的问题,函数调用在这里并不合适,特别是如果你使用inline
属性声明它。在许多情况下,无论您使用的是宏还是函数,优秀的优化编译器都会生成相同的代码,但这当然取决于实现。
就个人而言,我更喜欢一种功能。