使用 #define 被认为是"bad practice"吗?

Is using #define considered "bad practice"?

本文关键字:practice bad 使用 认为是 #define      更新时间:2023-10-16

>Goal

最后,我想知道使用 #define 是否对您的代码有害,以及为什么。

法典

#include <iostream>
using namespace std;
#define favouriteNumber 20;
int main()
{
    int number = favouriteNumber;
    cout << number;
}

根据Stroustrup的说法,定义常量特别"糟糕",因为编译器无法检查类型。

另一方面,如果一行宏为您节省了 20 行显式代码,那么有些人肯定会同意它很有用,即使它本质上是不安全的。这是因为编写更多的代码通常意味着出错的可能性更高。