c - 函数调用作为其他函数的参数

标签 c arduino

(我不知道正确的术语以便进行搜索或给出适当的标题)

我一直想知道:如果一个人使用一个函数调用来为另一个函数提供参数,这有关系吗(速度或编译大小)?我可以看到如何这样做可以提高代码的可读性,但有时使用一堆局部变量会变得乏味。

我的意思是:假设它们被多次调用(如在 for..loop 中)这两者之间有什么实际区别吗:

      byte patternType = mCols[i].getPatternType();
      byte stepIndex = mCols[i].update(m);
      byte patternValue = getPatternValue(patternType, stepIndex);

还有这个:

      byte patternValue = getPatternValue(mCols[i].getPatternType(), mCols[i].update(m));

最佳答案

评估参数的顺序是未定义的。如果函数是纯函数,这应该无关紧要,但如果它们有副作用,那就可能了。

关于c - 函数调用作为其他函数的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22361474/

相关文章:

c++ - Arduino:重写打印类问题

python - 在 Windows 上使用 pyserial 将串行数据写入 Arduino

javascript - 显示来自数据库 AngularJS 的值

c - 使用 cvVideoWriter 时 OpenCV 2.3.1 highgui 在退出时崩溃

C: char 的 scanf 没有按预期工作

c - C中的指针问题

c++ - 这个 for 循环可以用预处理器完成吗?

c++ - 在 Arduino 中使用 C++ 类

c - C 中的消息传递/从 C 中的结构打印 char 数组

c - 如何接受用户的完整和部分输入字符串?