我有一个将行号和文件名传递给错误处理程序的宏:
#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;
}
Will __LINE__
包含头文件中的行号,或者调用内联函数的源文件的行号(假设编译器在源代码中“粘贴”)?
在 C 和 C++ 中,宏(在大多数情况下)不会在对实际代码有任何了解的情况下进行评估,并且会在代码之前进行处理(因此称为“预处理器”)。所以,__FILE__
将评估为“file.h”,并且__LINE__
将计算出与所在行相对应的行号SYSTEM_FAILURE
出现在文件.h中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)