计算在代码中引用函数的次数
Count times a function is referenced in code
我想找到一种方法来使用宏(或者实际上任何东西,只是在编译时更新(跟踪代码中引用函数的次数。
假设我有以下代码:
void n(int* d, int x) {
functionCall();
*d += x;
functionCall();
return;
}
printf("called=%d", TIMES_CALLED);
/* called=2 */
基本上是这样的。我也需要确保它是准确的,所以任何事情都会有所帮助。
宏
__COUNTER__
扩展为整数文本,该文本从 0 开始,每次在源文件或源文件的包含标头中使用时都会递增 1。 __COUNTER__
在使用预编译标头时会记住其状态。始终定义此宏。
#include <iostream>
template<typename T>
struct Counter
{
template<int>
static void MyFunction()
{
std::cout << "Do smth." << std::endl;
}
};
#define CountMe MyFunction<__COUNTER__>
int main()
{
Counter<int>::CountMe();
Counter<double>::CountMe();
std::cout << __COUNTER__ << std::endl;
return 0;
}
输出:
Do smth.
Do smth.
2
相关文章:
- 区分接受常量参数的函数引用/指针和与函数参数同名的非常量参数
- 类 Referention 中C++回调函数引用非静态函数
- 使用函数引用指向节点的指针删除链表中的节点?
- 解释通过从函数引用返回数组的语法
- "Class1"类"Class2"对象作为私有数据成员。如何通过"Class 2"函数引用"Class1"对象?
- 使用默认构造函数引用成员变量初始化错误
- 无法调用函数引用 c++
- 使用 decltype(this) 获取函数引用
- 我应该如何定义返回指针的函数?(引用指针与指针指针)
- 从内联函数引用文件静态变量
- Boost::将sigaction函数引用绑定到实例
- 一种比函数引用更有效的方法
- 奇怪的未定义函数引用,函数调用C++不存在
- 是否可以检测绑定成员函数引用的对象是否被删除或销毁
- 构造函数引用参数导致seg错误
- 是否可以使函数模板从函数引用中获取“decltype”
- 无法让 Lua 函数引用"self"
- 如何解析变量和函数引用(Linker & Compiler)?
- 从不同模块调用函数 - 引用错误
- 如何在主函数中连接到数据库,然后从其他函数引用它