善用Condition設置,解決Source Insight中的parse too complex問題


SI,Source Insight,閱讀代碼的利器,目前它的最新版本為3.50.0064。

    SI的一個很有用的功能是可以列出所有的函數名和變量名,然而在Source Insight的工程中,偶爾會遇到那么一兩個文件,里面的函數名和變量名無法解析,提示“parse too complex”。難道這段程序真的復雜到SI都不認識了嗎?非也。這其中的罪魁禍首就是條件預編譯指令。

    在一個Source Insight工程中,它里面所有的沒有確定數值的宏都被認為是有效的,那么對於類似#ifdef...#else...#endif這樣的分支結構,如果在#ifdef和#else這兩個分支分別寫一個大括號{,而在#endif之后寫上大括號的另一半},而這些大括號又都是有效的話,后果顯而易見:由於左半邊大括號多了一個,括號不配對,導致所有后邊的代碼被看作是該括號內部的內容,直到文件結束。。

    示例代碼:

    #ifdef COMPLEX

    {

    #else

    {

    #endif

    }

    解決辦法:在Options->Preferences->Languages->Conditional Parsing的設置處,在Project Specific Conditions中設置該宏為true、false還是忽略。當設置宏COMPLEX為true或false之后,上面示例的兩個左大括號就只有一個有效,代碼可以被正確解析了。

http://blog.csdn.net/noski/article/details/5405582


免責聲明!

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



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