是否有可能在C中重新定义{和}?

你有什么方法可以做……

#define { { printf("%s,%s",_FUNCTION_, _LINE_); { 

这不会编译。 但我想知道是否有某种技巧可以有效地获得相同的function? (除了在预处理步骤中编写工具以挂钩)

这样做的目的是思考如何获得糟糕的勒芒代码覆盖率。

用宏来肯定是不可能的。 宏的名称必须是标识符。 大括号字符是标点符号,而不是标识符。

我用#define BEGIN ...#define END ...看到了这个(不是我支持它)。

例如

 void foo(void) BEGIN stuff(); END 

使用这些 问题中讨论的工具获取富人代码覆盖率,尤其是gco ,这是GCC的一部分。

你无法改变编译器解释{}的方式。 假设它们能够以语法方式确定代码是否正确以及它应该做什么。

如果你确实想做类似的事情,我建议在“{”“{MY_MACRO;”上进行搜索和替换。