在调试代码时,有时会遇到报错的的函数是没问题,而是调用它的函数传入的参数是异常的,而又没法通过代码准确定位到具体调用的位置的情况,特别是对一些基础函数,往往会出现这种情况,因为工程中调用它们的地方太多,而且有时会漏掉返回值检测。这里给出一个快速找出调用者是谁的方法。
想要一起学习C语言C++可以加群666+295+498邀请码(夏热),群里有大量学习资源
//filename: tt.h//filename: tt.c//filename: main.c
未定义#define foo(_a)宏时执行结果如下(将tt.h中定义foo的那段代码注释掉):
$ cc main.c tt.c
定义了#define foo(_a)宏之后执行结果如下:
$ cc main.c tt.c
通过定义与函数一致的宏,调用的时候执行了修改了之后的代码,这样我们就可以在其中添加一些我们需要的信息,方便我们调试。
文末奉上炸弹人得部分代码(喜欢得可以@小编呦)
/{}AFX_DATA_INIT
// TODO: add construction code here
m_bStart=false; // 游戏未开始
m_nTypeMode=1; // 默认的游戏模式类型
m_bBG=true; // 默认背景单项滚动
m_nBG=0; // 默认选中的背景为0
m_nMonster=5; // 初始怪物数量为5
m_nScore=-1; // 分数,初始为-1
m_nPass=-1; // 通关数,初始为-1
m_nMud=30; // 泥墙数量,初始为30
}