有没有一种简单的方法可以在不做任何预处理的情况下从C/C++源文件中删除注释.(也就是说,我认为可以使用gcc-E,但这将扩展宏.)我只想删除带有注释的源代码,其他内容不应更改.

编辑:

对现有工具的偏好.我不想自己用正则表达式写这个,我预见到代码中有太多惊喜.

推荐答案

在源文件上运行以下命令:

gcc -fpreprocessed -dD -E test.c

感谢KennyTM找到了正确的旗帜.以下是完整性的结果:

测验c:

#define foo bar
foo foo foo
#ifdef foo
#undef foo
#define foo baz
#endif
foo foo
/* comments? comments. */
// c++ style comments

gcc -fpreprocessed -dD -E test.c:

#define foo bar
foo foo foo
#ifdef foo
#undef foo
#define foo baz
#endif
foo foo

C++相关问答推荐

如何通过Zephyr(Devicetree)在PR Pico上设置UTE 1?

修改pGM使用指针填充2-D数组但不起作用

了解一些CLIPS原语数据类型

sizeof结果是否依赖于字符串的声明?

返回一个包含数组的 struct

在C中使用JMP_buf数组进行线程化(在xv6中测试)

变量>;-1如何在C中准确求值?

在c++中使用堆栈的有效括号

Rust FFI--如何用给出返回引用的迭代器包装C风格的迭代器?

以下声明和定义之间的区别

如何在C中打印包含扫描字符和整数的语句?

这个C程序在工作中途停止获取输入.我收到分段故障(核心转储).我还是不知道问题出在哪里

cairo 剪辑区域是否存在多个矩形?

我正在try 将QSORT算法实现为C++中的泛型函数

为什么会出现此错误?二进制表达式的操作数无效

传递给函数的 struct 中的数组

生成的头文件不包括用户定义的文件

在我的第一个C语言中观察到的错误';你好世界';程序

System V 消息队列由于某种原因定期重置

OpenGL 中的非渐变 colored颜色 变化