Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C/C++;和C#语法检查器,可以在文件列表上运行_C#_C++_C_Syntax Error - Fatal编程技术网

C/C++;和C#语法检查器,可以在文件列表上运行

C/C++;和C#语法检查器,可以在文件列表上运行,c#,c++,c,syntax-error,C#,C++,C,Syntax Error,你能推荐我C/C++和C#语法检查器吗?它们可以从命令行运行。我有大约12000个文件,用C/C++和C语言编写,其中大约1000个文件有错误,所以我需要找出一组文件来手动修改它们。 < > C和C++,你可以使用 GCC < /C>和 G++ > -fScript仅< /C>。然而,正如评论中所说,这不会发现未定义的引用和其他链接时间错误 微软的C/C++编译器也有类似的功能。不过,我不确定它是否也适用于C。技术上最好的方法是编译每个文件。设置所有这些编译要么很容易(因为您有构建脚本),要么

你能推荐我C/C++和C#语法检查器吗?它们可以从命令行运行。我有大约12000个文件,用C/C++和C语言编写,其中大约1000个文件有错误,所以我需要找出一组文件来手动修改它们。

< > C和C++,你可以使用<代码> GCC < /C>和<代码> G++<代码> > <代码> -fScript仅< /C>。然而,正如评论中所说,这不会发现未定义的引用和其他链接时间错误


微软的C/C++编译器也有类似的功能。不过,我不确定它是否也适用于C。

技术上最好的方法是编译每个文件。设置所有这些编译要么很容易(因为您有构建脚本),要么会很困难——如果您没有它们的话,这种差异可能会促使您选择解决方案

对于C,您几乎需要通过启用预处理器的编译器来运行它们。如果不这样做,包含宏和预处理器条件的典型C代码将根本无法解析

同样,对于C++,尽管人们倾向于使用预处理器更少。您可能会使用C++源文件解析器,但必须生成任何语法错误,以查看它们是否是由PROPROSER指令或宏引起的。如果您希望避免设置编译脚本,可以将我们的脚本配置为在不运行预处理器的情况下处理代码,因此它在这里可能很有用。它真正解析文件,然后预打印;您可以忽略预打印部分,检查文件的退出状态是“OK”(无错误)还是“not OK”(某种语法/语义错误)


C#确实有一个预处理器,但它的使用非常有限。你可以在我们的网站上找到类似的C#格式化程序。该系列不仅处理特定的语言,而且通常处理几种更常见的方言(GCC、MS等)

为什么不直接使用编译器呢?作为语法检查器,不会检查引用和其他各种内容。所以它不会100%准确,它是Microsoft C/C++。没有办法编译它们-整个编译过程需要一天的时间…删除链接步骤是否会减少构建时间,从而可以通过Microsoft工具运行它?如果您以Microsoft编译器为目标,使用其他语法检查器仍可能在代码中留下许多错误。@zvoice:编译它们需要一天时间。。。你为什么在乎?您需要一天时间才能对检测到的任何语法错误做出响应。整套设备的变化速度能否超过一天一次?怎么做?如果文件非常糟糕,有上千个语法错误,那么还有多少其他错误?这些将花费你更多的时间。一个单一的内存损坏错误可以很容易地花费一个星期在这个规模的项目上。你好,Ira。设置这样的编译器不是更好的解决方案。我有一个连接非常差的远程VM来测试我的代码,在这里我没有机会运行所有脚本,构建这个源代码。所以我需要一个像。。。陛下理解,但这只会给我语法错误(只使用语法分析器,不进行任何编译)。代码中的错误非常简单,因此也不需要做任何预处理。@zvoice:“不需要做任何预处理”来检查C程序的语法,实际上你没有选择的余地;我不明白你怎么不明白。(如果不是,选择一个随机的C程序,并将其提供给我们的C格式化程序)关于“像这样的编译器”。。。我不知道你指的是什么。如果你是指我提到的格式化程序,那些格式化程序不是编译器;但它们确实使用完整的语法进行解析,并且会报告语法错误。“理解(产品)”似乎是解决问题的大锤,根本无法避免预处理问题。这些工具都是商业软件。在网站上查看价格。它是Microsoft C/C++。没有办法编译它们-整个编译过程需要一天时间…看起来微软的C/C++编译器也有类似的选择。我已经更新了答案。