Tho*_*ews 15 c c++ inline line c-preprocessor
我有一个宏将行号和文件名传递给错误处理程序:
#define SYSTEM_FAILURE (error_code, comment) \
   System_Failure((error_code), (comment), __LINE__, __FILE__);
__LINE__在内联函数中使用时如何解决?
file.h:
inline int divide(int x, int y)
{
    if (y == 0)
    {
        SYSTEM_FAILURE(ENUM_DIVIDE_BY_ZERO, "divide by zero error");
    }
    return x/y;
}
将__LINE__包含头文件中的行号,或调用内联函数的源文件的行号(假设编译器在源代码中执行"粘贴")?
Eri*_*inn 21
在C和C++中,宏(大多数情况下)不是用实际代码的任何知识进行评估,而是在代码之前处理(因此称为"预处理器").因此,__FILE__将评估为"file.h",__LINE__并将评估与SYSTEM_FAILUREfile.h 中出现的行对应的行号.