c语言sscanf函数的用法是什么
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~