gpt4 book ai didi

c++ - 是否可以制作一个用分号替换换行符的宏

转载 作者:行者123 更新时间:2023-11-30 04:19:11 31 4
gpt4 key购买 nike

假设有人真的很懒,不想一直记住在行尾输入分号,有没有办法用宏来解决这个问题?

我并不是说这是我想做的事情。只是好奇是否有人尝试过/如果可能的话。

类似于:

#define '\n'  ';\n'

最佳答案

不能,宏标识符只能是字母、数字和下划线。

此外,这会导致大量不必要的分号

if (cond)
stmt;
/* or */
if (cond)
{
stmts;
}

会被这个理论上的宏破坏。

如果您想用一个分号后跟一个换行符替换所有换行符(这是一个非常糟糕的主意),您可以使用 sed 行来完成

sed -i "s/^\([^#].*[^\;{]\)$/\1;/" file.cpp

这将在任何行的末尾添加一个分号:

  1. 尚未以分号结尾
  2. 不以#开头
  3. 不以 {
  4. 结尾

虽然这还不够完美。总会有一些情况您不想以分号结尾,这会导致代码无法编译,尽管这比上面的 ifs 是空语句要好。

int var = //like here
some_value;

func(arg1, arg2, // and here
arg3, arg4);

int func() // and here too
{
//body
}

关于c++ - 是否可以制作一个用分号替换换行符的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15994974/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com