小编Sri*_*dam的帖子

使用Clang AST打印函数的参数

我想获取传递给函数的参数.例如,如果我有电话

printf("%d%d",i,j);

输出应该是

%d%d
i
j

我可以使用RecursiveASTVisitor中的VisitCallExpr()进行函数调用.还能够获取参数的数量和参数类型.但我不知道如何得到论点.

bool MyRecursiveASTVisitor::VisitCallExpr (clang::CallExpr *E)  
{
    for(int i=0, j=E->getNumArgs(); i<j; i++)
    {
        llvm::errs() << "argType: " << E->getArg(i)->getType().getAsString() << "\n";
    }
    return true;
}
Run Code Online (Sandbox Code Playgroud)

输出:

argType:char*
argType:int
argType:int

请帮助我得到论点.

c++ llvm clang abstract-syntax-tree format-string

10
推荐指数
2
解决办法
4802
查看次数

如何使用命令对ENTER键进行别名

我们可以使用命令对Enter键进行别名,这样当我在提示符处按Enter时,应该执行命令.例如,当我在提示符处按Enter键时,应执行ls命令.

abc@def$ 
<output of ls command>

abc@def$
Run Code Online (Sandbox Code Playgroud)

这样我就可以在.bashrc文件中添加别名了.

谢谢..!

linux bash shell

4
推荐指数
1
解决办法
1368
查看次数

如何使用替换替换vim中的表达式的一部分

如何将替换字符串中的搜索模式的一部分.

我不得不更换abc->hwqe_w1_lencommon_wqe_get_len(abc)
同样这一块def->hwqe_w1_lencommon_wqe_get_len(def)

在vim substitute命令中只使用一个表达式.

我尝试使用以下命令,但它说无效命令.
:%s /\(.*\)->hwqe_w1_len/\='common_wqe_get_len(' . submatch(1) '\)'/gc

当我移除关闭支撑时,它可以工作,但它需要以前的空格 abc
:%s /\(.*\)->hwqe_w1_len/\='common_wqe_get_len(' . submatch(1)/gc

我在做什么错?如何放置abc空间和最后的闭合支撑?

regex vim substitution

1
推荐指数
1
解决办法
365
查看次数