在C/C++中,任何人都可以提供一些使用内联或宏编写小函数的拇指规则吗?

Viv*_*rma 0 c c++ coding-style

与人讨论,在面试中询问或在面试中被问到,我不知道我是否确切知道何时将内联函数编写为宏或将其写为宏.除了编译时和运行时考虑之外,从编码标准的角度来看是否有任何建议.

我认为这是程序员偏好的问题之一,或者可能会说偏向于使用.如果成员可以引用轶事,经验或情况,他们选择了一个而不是另一个,我可能是一个好主意.

小智 5

在功能根本无法完成工作的情况下,应谨慎使用宏.一个例子是错误报告.我为此目的使用此宏:

#define ATHROW( msg )                                               \
{                                                                   \
    std::ostringstream os;                                          \
    os << msg;                                                      \
    throw ALib::Exception( os.str(), __LINE__, __FILE__ );          \
}                                                                   \
Run Code Online (Sandbox Code Playgroud)

这必须是一个宏,以便使用标准__FILE____LINE__宏获取正确的文件和行号,并提供错误格式,以便我可以这样说:

ATHROW( "Value " << x << " is out of range" );
Run Code Online (Sandbox Code Playgroud)