初学者MACRO与const概念性想法

时间:2015-11-09 22:36:44

标签: c++ macros const

这两个最大操作的最显着差异是什么?哪一个呢 您更喜欢在您的系统中使用,为什么?

  1. #define max(a,b) (a)<(b)?(b):(a)
  2. int max (const int a, const int b) { return (a) < (b) ? (b) : (a); }
  3. 我正在努力查看我是否正在针对上述问题走上正轨。我的第一个想法显然是#define表示一个名为“max”的预处理程序指令或MACRO。因此,在程序中遇到“max”的任何地方,它将被该宏的定义值替换。宏也不需要任何内存分配,因此我们可以期望更快的执行时间。

    另一方面,const关键字确实需要内存分配,并且执行程序无法更改。通过我的笔记和一些在线资源的总体共识似乎是宏更有效/更快,因为它们不需要内存分配。因此,我似乎更愿意使用宏来获得速度优势。

    基本上我的问题是,我是否确定了这两者之间的主要区别?还是我错过了一些重要的东西?

0 个答案:

没有答案