【发布时间】:2014-12-15 20:12:00
【问题描述】:
我可以在 C 中实现这个吗?
#define X abc
那么X_menu();将被预处理为abc_menu();
在另一个版本中
如果我define X def
那么X_menu(); 将是def_menu();
我确定应该有一个方法,但我想不通。
【问题讨论】:
-
如果用户可以这样做,那么标准库的内部细节需要命名为
__l__i__k__e__t__h__i__s,我也想扼杀人们。实际上,即使那样也行不通……标准库不可能安全地实现。 -
通常的约定是不要用预处理器玩这样的把戏。甚至不应使用 Ryan Haining 的(工作)答案:间接为读者增加了一个很大的减速带,并且打字的节省是最小的。如果您必须使用某种自动工具来快捷输入,请使用编辑缩写。学习触摸打字也有帮助。
-
这个真的不懂。
-
@user1932637 我给你的东西有效,但实际使用是个坏主意
-
你为什么认为这是个坏主意?
标签: c gcc c-preprocessor