我正在使用预处理器宏来声明一些重复变量,具体来说:
QuitCallbackType quitCallback;
LossCallbackType lossCallback;
PauseCallbackType pauseCallback;
KeyCallbackType keyCallback;
MouseCallbackType mouseCallback;Run Code Online (Sandbox Code Playgroud)
我想使用预处理器宏来实现它,la
CREATE_CALLBACK_STORAGE(quit)
CREATE_CALLBACK_STORAGE(loss)
CREATE_CALLBACK_STORAGE(pause)
CREATE_CALLBACK_STORAGE(key)
CREATE_CALLBACK_STORAGE(mouse)
Run Code Online (Sandbox Code Playgroud)
它本质上是这样的:
#define CREATE_CALLBACK_STORAGE(x) capitalize(x)##CallbackType x##CallBack;Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,所以我不必传递每个名称的大写和小写版本?
我意识到使用宏的打字并不多,但问题本身开始引起我的兴趣.
宏预处理器无法获取子字符串或大写字母。对不起。
如果您可以更改命名方案,您可能会取得更大的成功。例如:
QuitCallbackType _QuitCallback;
Run Code Online (Sandbox Code Playgroud)
编辑:我被警告不要使用前导下划线,但这个想法仍然适用:
QuitCallbackType callbackQuit;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5074 次 |
| 最近记录: |