最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【转】善用Condition设置,解决Source Insight中的parse too complex问题

工作和技术 crifan 3702浏览 0评论

【转】善用Condition设置,解决Source Insight中的parse too complex问题

http://blog.csdn.net/noski/archive/2010/03/22/5405582.aspx

    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之后,上面示例的两个左大括号就只有一个有效,代码可以被正确解析了。

——————-转载分割线———————

转载备注:我的SI版本是3.50.0049。把添加了文件中的一个宏_WINDOWS,设置值为true后,即可解决此问题。

相关代码为:

。。。。。。。

#if _WINDOWS
                        for each(。。。){
#elif _LINUX
                        for (。。。){
#endif
。。。。。。。 

}

。。。。。。。 

转载请注明:在路上 » 【转】善用Condition设置,解决Source Insight中的parse too complex问题

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
79 queries in 0.152 seconds, using 22.11MB memory