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 進行調試 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM