首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从.c/.h源文件删除尾随空格是100%安全的吗?

从.c/.h源文件删除尾随空格是100%安全的吗?
EN

Stack Overflow用户
提问于 2021-04-30 18:26:31
回答 1查看 65关注 0票数 0

我希望自动从.c和.h文件中删除所有尾随空格,以减少导致git历史中合并冲突的垃圾。

这能改变编译阶段的输出吗?或者自动完成这个任务是完全安全的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-30 18:34:21

我能想到的唯一一种情况是,如果有一个以反斜杠结尾的宏,后面跟着空格,那么它的意义就会改变:

代码语言:javascript
复制
#define FOO bar\<space> 

其中<space>表示空格字符。在修整之前,反斜杠会逃离空格,我不认为这有任何影响。但是,当您删除空格时,它会转义换行符,因此下一行将成为扩展的一部分。

由于没有理由编写这样的转义空间,这似乎是一个非常不可能的问题。事实上,如果有这样的代码,我认为更有可能的是他们打算编写一个多行扩展,而这个空间是偶然添加的。

在宏和字符串文本之外,所有空格序列都被视为单个空格,空格和换行符之间没有区别。

更新:

这个案子实际上不成立。C不允许字符串或字符文字之外的转义序列,而且只有换行符可以用反斜杠转义。GCC有一个扩展,将其作为一个转义换行符(万一程序员犯了我前面描述的错误),并且在执行时会打印警告。因此,删除空格将产生相同的结果,但消除警告。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67338800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档