【发布时间】:2014-05-11 16:12:16
【问题描述】:
如何使用标准工具/脚本将 C 函数名称替换为另一个名称:shell/awk/grep/python 等?
例如我需要在整个代码库中盲目地将assert(a>b) 语句替换为MyAssert(a>b)。只需要替换函数名。
【问题讨论】:
-
你希望它有多小心?
printf("No assert() here\n");?/* assert that the world is good! */? -
这里可以替换“No assert()\n”。但是不能替换像“断言世界是美好的!”这样的非功能文本。 .我需要函数名替换,而不用接触同名的非函数文本。
-
好的;这是相当理智的。并且大概您想在函数名称和左括号之间使用一个或多个空格来处理
assert (space < open_parenthesis),但不关心assert /* Nonsense */ (paranoia != insanity);,因为没有人在他们的正常头脑中使用函数名称和开括号之间的 cmets 编写代码括号。 -
@JonathanLeffler
assert不是宏吗?所以插入评论会阻止它的调用。 -
@luserdroog:在评估宏时会删除注释,因此宏名称及其左括号之间的 cmets 不会影响宏的调用。