作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一些宏KEY_*
。我想将它们全部定义为外部变量,但数量和名称可能会有所不同。
文件1.h:
#define KEY_FOO 200
...
#define KEY_ASDFG 423
预处理后的file2.c:
#include <file1.h>
// Something like this should be generated by macros or so, but should not hardcode the names (except KEY_)
extern int key_foo; int key_foo = 200;
...
extern int key_asdfg; int key_asdfg = 423;
我可以(以及如何)制作一个像这样工作的元宏/东西,并且不需要使用 FOO
/ASDFG
调用?
最佳答案
仅使用 C 预处理器无法做到这一点。
至少,它需要将 KEY_FOO
标记分解为其组成字符,并且没有预处理器工具可以做到这一点。
使用 sed 或 perl 应该很容易做到,或者您甚至可以编写一个 C 程序来执行此转换,但您不能在预处理器中执行此操作。
关于C 元宏模式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15045319/
我是一名优秀的程序员,十分优秀!