Parse Too complex in xxxx.cpp --------source insight

网友投稿 445 2022-11-24

Parse Too complex in xxxx.cpp --------source insight

Source Insight,某些文件出现“parse too complex”,如何解决? 查看网上的解决方案都是     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之后,上面示例的两个左大括号就只有一个有效,代码可以被正确解析了。 但是我试了下,根本没有解决我的问题 后来发现是初始化列表长度的问题,如果初始化类别的行数超过50行,就会出现上述问题, sdk_buyout_code_strategy::sdk_buyout_code_strategy() : str_pos_id("") , str_combine_id("") , str_生气, str_last_reqTrackerurl(""), str_pos_width(""), str_pos_height("") { regist_replace_str(); } 把初始化列表的行数控制在50行以内,这个问题就会解决 这应该是source insight 本身的bug

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java 详解循环屏障CyclicBarrier如何实现多线程分段等待执行完成
下一篇:基于DOS实时嵌入式软件测试工具的研究
相关文章

 发表评论

暂时没有评论,来抢沙发吧~