您遇到过的最糟糕的现实世界宏/预处理器滥用是什么(请不要做作的 IOCCC 答案*哈哈*)?
如果真的很有趣,请添加一个简短的片段或故事。目标是教一些东西,而不是总是告诉人们“永远不要使用宏”。
p.s.:我以前使用过宏......但通常当我有一个“真正的”解决方案时,我最终会摆脱它们(即使真正的解决方案是内联的,所以它变得类似于宏)。
奖励:举一个例子,说明宏确实比非宏解决方案更好。
最佳答案
根据内存,它看起来像这样:
#define RETURN(result) return (result);}
int myfunction1(args) {
int x = 0;
// do something
RETURN(x)
int myfunction2(args) {
int y = 0;
// do something
RETURN(y)
int myfunction3(args) {
int z = 0;
// do something
RETURN(z)
是的,没错,任何函数中都没有右括号。语法高亮一团糟,所以他用vi编辑(不是vim,它有语法着色!)
他是一名俄罗斯程序员,主要从事汇编语言工作。他热衷于保存尽可能多的字节,因为他以前曾在内存非常有限的系统上工作。 “它是用于卫星的。只有很少的字节,所以我们将每个字节用于很多事情。” (有点摆弄,重用机器指令字节作为它们的数值)当我试图找出什么样的卫星时,我只能得到“轨道卫星。为了进入轨道。”
他还有两个怪癖:一个安装在显示器上方的凸面镜“用于知道谁在看”,以及偶尔突然从椅子上下来做十个快速俯卧撑。他将最后一个解释为“编译器在代码中发现错误。这是惩罚”。
关于c++ - 你遇到过的最糟糕的现实世界宏/预处理器滥用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/652788/