C & C++ 中值得注意的编译,链接,调试,错误及其原因

1.    #define VaParameter_Macro(...) 
       编译环境: VC6.0
       编译错误:  error C2010: '.' : unexpected in macro formal parameter list
        原因:   据查是因为VC6.0不支持可变参数的宏定义,VC6.0编译不能通过
 
 

2. ****.cpp 文件中有如下函数:

 

void skf_drawText(Skf_Char* pcText, Skf_S16 x, Skf_S16 y, screenRectSt rect, colourSt colorst, Skf_S32 flag, Skf_U16 font, unsigned    char  **p) 

其中: 

struct screenRectSt ;

struct colourSt 自定义数据结构

 

通过gdb调试,进入skf_drawText, 所有的数据均为非法数据,无法进行调试,但print的数据均为正常,有效数据

如下所示:

 

  通过尝试用如下定义,则调试过程一切正常。

  void skf_drawText(Skf_Char* pcText, Skf_S16 x, Skf_S16 y, mr_screenRectSt* rect, mr_colourSt* colorst, Skf_S32 flag, Skf_U16 font,    unsigned char  **p) 

结论: 函数定义,实现过程中,参数尽量采用指针或者基本数据类型,提高效率同时 方便gdb 进行调试 

 

 

 

转载于:https://www.cnblogs.com/yaozhongxiao/archive/2012/03/07/2383966.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值