内联和宏

Anonim

内联与宏

如今,C ++在计算机编程领域走得太远了。作为一种强大的语言,由于其庞大的函数库,它有时会让程序员感到困惑。内联函数是其中之一,很容易与语言中的宏混淆。 并不是两者之间存在细微差别,但由于它们所具有的属性,它们可能会有点混乱。在本文中,我们将更多地讨论C ++中内联函数和宏之间的差异。

排队 内联函数就像C ++中的任何其他函数一样,也是以常规方式调用的。它执行的功能是它创建已编译函数定义的副本。也就是说,它会创建要编译的已定义项的副本。如果我们添加任意两个整数并将其称为内联函数,则可以采用一个示例,编译器将创建要编译的整数的副本。 例:

内联int sum(int x,int y) { 返回(x + y); }

C ++中的宏在程序行中实现文本替换。也就是说,它们根据函数中定义的更改替换文本。与内联函数不同,宏使用函数操作代码。例如: #define DOUBLE(X)X * X.

int y = 5; int j = DOUBLE(++ y);

在这里,我们将获得30的价值!由于调用是通过宏完成的,“X”已经被++ y取代,这使得++ y与另一个++ y相乘。这使得总共5 * 6即30而不是6.六是基本但错误的答案。

现在,宏可能会在这里造成错误。因此,内联函数通过将值复制到编译器的内存然后编译它来解决问题。

摘要:

1.内联函数创建函数定义的副本。 2.宏替换函数中标识和定义的文本。 3.当宏应该导致程序中的错误时,也会应用内联函数。