我正在考虑编写能够处理宏的C定义处理器的最佳方法。不幸的是,我没有想到任何聪明的东西。它的行为应该与C中的一个完全一样,因此它处理如下表达式:
#define max(a, b) (a > b ? a : b)
printf("%d\n", max(a, b));
或这个:
#define F 10
#define max(a, b) (a > b ? a : b)
printf("%d\n", max(a, F));
我知道 K&R2 的安装和查找功能,我还需要什么来替换括号内的文本?有没有人有任何建议或一些伪代码?我知道这是一项复杂的任务,但是,最好的方法是什么?