|
|
1
10
|
|
|
2
8
一种方法:如果您有Notepad++,打开所有文件(打开100个文件没有问题),搜索{和}(搜索->查找->在所有打开的文档中查找),注意计数的差异(应该是1)。随机关闭10个文件,查看计数差异是否仍然为1,如果继续,否则问题出在其中一个文件中。重复 |
|
|
3
4
方便提示: 对于每个头文件,自动生成包含它的源文件,然后可选地包含一个空的main方法,而不执行其他操作。将所有这些文件编译为测试用例,尽管运行它们没有意义。
这个提示是从谷歌发布的C++风格指南中修改的,它指出每个组件的源文件应该包含该组件在任何其他头之前的接口标题。这具有相同的效果,即确保至少有一个源文件无法编译,并且如果该头文件有任何错误,则将其包含在内。 当然,它不会在宏中捕捉到不匹配的大括号,因此,如果您在宏中使用了很多大括号,那么您可能必须在源文件上运行预处理器,并手动和IDE检查结果。
更频繁地签入(在私有分支上,以防止未完成的代码妨碍其他人)。这样,当事情变得糟糕时,您可以与最后编译的内容进行比较,并将重点放在更改的行上。 |
|
|
4
2
|
|
|
5
1
编辑:是这样吗 vim script 帮助这似乎可以。 |
|
|
6
1
你能创建一个脚本来完成所有的工作吗?包括,然后把所有的东西都写到一个临时文件中?或者试试编译器帮你解决这个问题?然后,您可以使用各种编辑器的括号突出显示功能来查找问题,并且您可能能够识别文件。(另一个帮助是让脚本在每个包含的文件周围添加注释)。 |
|
|
7
1
我发现,如果我将问题模块设置为不使用预编译头,问题就会消失。与“#pragma hdrstop”有关的内容不应在#if/#endif中。 |
|
|
8
1
派对很晚了,但是在linux上你可以使用
然后你可以用管道把它输送到
通过一点bash算法,您可以对右大括号执行相同的操作,然后打印差异。
|
|
|
9
0
|
|
|
10
0
首先预编译您的代码,这将创建一个大的块,其中包含填充到同一个文件中的文件。然后您可以使用这些大括号匹配脚本。 |
|
|
11
0
我最近在重构一些代码时遇到了这种情况,我不喜欢上面的任何答案。问题在于他们忽略了一个相当基本的假设: 任何给定的文件(很可能)都有匹配的大括号和if/endif宏。
foo.cpp
B.h:
因此,假设任何给定的文件/模块都包含大括号和预处理器指令的匹配集,这个问题现在很容易解决。我们只需要一个脚本来读取文件/计算括号&它发现并报告不匹配的指令。 我已经在Ruby中实现了一个,请随意选择并适应您的需要: https://gist.github.com/movitto/6c6d187f7a350c2d71480834892552ab |
|
|
12
0
我只是花了一个小时来解决这样的问题。很难发现,但最后,我在一行上打了一个双精度:
这打破了世界。
|
|
|
13
0
最简单、最快的解决方案是用一致的块从头到尾注释文件。如果错误仍然存在,则您尚未对打开的大括号进行注释。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |