2024-04-25 12:53:30 发布
网友
我需要使用轻量级工具(例如,使用一些现有的Python或C预处理器框架)系统地在C函数的if条件中插入语句:
例如,让foo作为C函数:
int foo(int x){ if (x>3) return x; }
我需要把它转换成
int foo(int x){ if (x>3){ print ("%d", x); return x; } }
我尝试过使用LLVM,但它不能更好地与代码的其他部分集成。在这里,我更喜欢Python/C预处理器框架解决方案。谢谢你的建议。你知道吗
您可以考虑使用GCC MELT或者GCC Python Plugin来定制GCC编译器来转换其Gimple表示。这将是一个完整的解决方案,但我不确定它是否符合“轻量级”(因为您需要了解GCC内部的细节),但Clang/LLVM方法也不是。您可能需要一周以上的工作(尤其是了解GCC或Clang/LLVM的内部结构)
顺便说一句,你的问题没有你所相信的那么容易,因为
int foobar(int x) { return (x>3)?(x*6):(x*x); }
包含条件。而且,原始函数与
int foo(int x){ while (x>3) // this while is done 0 or 1 time return x; }
而且很容易找到很多其他的表达方式。你知道吗
因此,纯粹的句法方法永远不会完全奏效。因此,你不能指望什么“光”。你知道吗
(我的观点是C代码插装从来都不是轻量级的问题)
您可以考虑使用GCC MELT或者GCC Python Plugin来定制GCC编译器来转换其Gimple表示。这将是一个完整的解决方案,但我不确定它是否符合“轻量级”(因为您需要了解GCC内部的细节),但Clang/LLVM方法也不是。您可能需要一周以上的工作(尤其是了解GCC或Clang/LLVM的内部结构)
顺便说一句,你的问题没有你所相信的那么容易,因为
包含条件。而且,原始函数与
而且很容易找到很多其他的表达方式。你知道吗
因此,纯粹的句法方法永远不会完全奏效。因此,你不能指望什么“光”。你知道吗
(我的观点是C代码插装从来都不是轻量级的问题)
相关问题 更多 >
编程相关推荐