我在不同的源文件中有两个函数:
a.cpp
void A()
{
B();
}
Run Code Online (Sandbox Code Playgroud)
b.cpp
void B()
{
std::cout << "B() called from file: " << ??? << " line: " << ??? << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
如何获取呼叫的文件名和行号?
Jar*_*Par 10
通常,您可以通过将函数隐藏在宏调用之后自动执行此操作,该宏调用将传递all __FILE__和__LINE__值
void _B(const char* file, int line) { ... }
#define B() _B(__FILE__, __LINE__)
Run Code Online (Sandbox Code Playgroud)
但这绝不是一个万无一失的解决方案.开发人员可以_B直接调用或_B从生成的代码,汇编等中调用....其中可能没有有意义的文件/行号
OP要求举例说明
void _C(int p1, char p2, const char* file, int line) { ... }
#define C(p1, p2) _C(p1, p2, __FILE__, __LINE__)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4427 次 |
| 最近记录: |