【问题标题】:C++ define function [closed]C ++定义函数
【发布时间】:2017-05-29 13:04:00
【问题描述】:

我想问是否有一种方法可以使用define在C++中创建一个函数:

#define RequiredDamage(%1) ( (%1+1)*500 )

有人可以帮助我更好地了解#define 的实际工作原理。实际创建这样一个函数的实际语法是什么,它可以应用在哪里,使用它是个好主意吗?为什么我更喜欢它而不是普通函数?

提前致谢!

【问题讨论】:

  • 您对#define 的某些特定方面感到困惑吗?你的书没有解释的东西?为什么不写一个实际的函数呢?
  • 你读过(不是函数)吗?你见过他们的例子吗?您能否更具体地说明您遇到的问题,详细说明您的疑惑?
  • 实际上,在您的情况下,您应该避免这种情况,而只是 define 一些 static int RequiredDamage(int x) { return (x*1)*500; } 函数可能在您的某些头文件中。你需要阅读更多关于C & C++ preprocessor尤其是here
  • 是的,您可以使用每个处理器来创建函数。但是模板是更安全、更健壮和更强大的方式来完成同样的任务。无论如何,你所做的是一个宏,而不是一个函数。

标签: c++


【解决方案1】:

是的,您需要在宏定义中提供一个参数:

#define RequiredDamage(x)  ( (x+1)*500 )

【讨论】:

  • 你应该提到宏的谬误以及为什么不在 C++ 中使用它们。
  • @TheTechel C++ 中有什么替代方案?内联函数?
  • constexpr 函数更好,因为它们实际上可以立即进行评估。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-05
  • 2019-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多