我有一个想法,可以制作一个简单的程序,这将帮助我在 C 等语言中使用运算符优先级。其中最困难的部分是给表达式加上括号。例如,我想要这个:
*a.x++ = *b.x++
转换为:
((*(((a).(x))++)) = (*(((b).(x))++)))
我在这些步骤中手动完成的:
*a.x++ = *b.x++
*(a).(x)++ = *(b).(x)++
*((a).(x))++ = *((b).(x))++
*(((a).(x))++) = *(((b).(x))++)
(*(((a).(x))++)) = (*(((b).(x))++))
((*(((a).(x))++)) = (*(((b).(x))++)))
实现这一目标的最佳方法是什么?是否已经有我可以使用的解决方案?我更喜欢在 PHP、C、C++、Python 或 Ruby 中执行此操作。
(这不是我程序的全部想法,这只是第一步。)