在查看一些遗留代码时,我发现了一个相当不寻常的结构(至少对我来说):
#define loop(i,start,stop) for((i)=(start);(i)<(stop);(i)++)
Run Code Online (Sandbox Code Playgroud)
然后在任何地方使用此宏而不是常规的循环构造.
我认为一般来说这是一个坏主意,因为它并没有真正解决问题,也没有简化任何事情,但这可能是危险的吗?危险我的意思是打破编译(最好的情况)或(更糟糕但更有趣)做其他事情而不是预期.
针对宏的标准警示故事是带有副作用的参数:
loop(i, x, y++)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1733 次 |
| 最近记录: |