x-macros相关内容
在标准 C 或 GNU 扩展中是否有任何方法可以将内容附加到宏定义中?例如,给定一个定义为 的宏#define List foo bar 我可以附加 bas 以便它 List 像我定义它一样扩展 #define List foo bar bas? 我希望我能做这样的事情: #define List foo bar bas#define List_ Expand(列表)#undef 列
..
我刚刚了解到 X-Macros.你见过 X-Macros 在现实世界中的哪些用途?它们什么时候适合这项工作? 解决方案 几年前,当我开始在代码中使用函数指针时,我发现了 X 宏.我是一名嵌入式程序员,经常使用状态机.我经常会写这样的代码: /* 声明状态代码的枚举 */枚举{ STATE0, STATE1, STATE2, ... , STATEX, NUM_STATES};/* 声明一
..
我试图详细了解X宏主题.但这并没有完全清楚.最好由任何一位专家用“如何使用,如何调用"的示例来解释该主题. 我找到了几篇文章,但是对此并没有完全清楚.在所有地方,他们都使用了我缺乏使用这些X宏的代码段. 提前致谢帕塔 解决方案 您基本上 #define 变量列表作为占位符宏 X 的参数: #define X_LIST_OF_VARS \X(my_first_var)\X(另
..
我有3个文件: test.c int table [] = { #define X(val)val, #include“ test.x” #undef X }; void level2(void){ level3(); level4(); } void level3(void){ level4(); } test2.c
..
我想到以下是 X宏技巧的首选样式: #define LIST_OF_COLOURS(X)\ X(RED)\ X(绿色)\ X(蓝色) #定义LIST_OF_FRUIT(X)\ X(苹果)\ X(橙色)\ X(TOMATO) 具体来说,传递 X 到列表的宏,而不是在每次实例化列表时都取消定义和重新定义它。这允许: #define X_LI
..
我正在尝试同时使用X宏和预处理程序级联。 我已经阅读了很多关于SO的其他问题与预处理器级联有关,但仍无法解决问题或如何适应我的用例。 项目列表是ID号列表一堆结构,例如: #define LIST_OF_ID_NUMS \ \ X(1)\ X(2)\ X(3)\ X(4)\ X(5)\ \ X(6)\ X(7)\ X(8)\ X(9)\
..
我们的系统中有大量的枚举表示事件,错误等内容. 我正在尝试构建基础结构,使我们能够将每个接收到的事件或错误消息记录为字符串(而不是纯整数),而不必为每个枚举构建和维护两个列表. 我发现X Macro技术非常适合我的需求.因此,不要这样做: typedef enum { valA, valB, valC } some_enum; const char* some
..
我有很多类型的游戏对象在一起是有一些方法。 所有关系都是由映射 。 #include 使用命名空间std; template class Map {// N:N relation public:std :: vector getK2(K1 * k1){/ * some code *
..
有没有办法在标准C或GNU扩展到附加的东西宏定义?给宏的例如的,定义为结果 的#define清单富栏结果 我可以追加 BAS ,以便它列表的#define清单富酒吧浅? 我希望我可以做这样的事情: 的#define清单富巴BAS#定义List_展开(名单) 和#undef名单 #定义列表展开(List_)QUUX 但我不能想出如何定义展开()宏,以便它会做我想做的。 动机: 我与歧视
..
我刚刚学会的的X宏。的X宏什么现实世界使用你见过?当他们是这个职位的合适的工具? 解决方案 我在几年前发现了X宏,当我开始利用函数指针在我的code。我是一个嵌入式程序员,我用状态机频繁。我经常会写code是这样的: / *声明状态codeS *枚举/ 枚举{STATE0,STATE1,STATE2,...,STATEX,NUM_STATES};/ *声明函数指针表* / p_func
..
发现这个非常有用的Q / A对SO:是否有通过在C diferent类型的元素一个struct任何方式循环? 但因为我很新的,整个的X宏观的东西,我想知道,如果它怎么有可能去适应这个例子用数组一个结构 - 是这样的: typedef结构 { UINT8地址1 [SIZEOF_ADDR] UINT8地址2 [SIZEOF_ADDR] UINT8 ADDR3 [SIZEO
..