none
宏展开问题 RRS feed

  • 问题

  • 大家好,最近我再写一个纯C代码的程序

    这个程序中有许多数据结构,我们在定义的时候通过层套宏定义的方式来进行定义,比如

    #define MACRO_2  (MACRO_1 + sizeof(int) * (3))

    其中定义了一种根据条件来判断定义的

    #define MACRO_2(cond, a, b)  ((cond)?a:b)

    然后这种条件的定义又进行了层套

    最后展开的单行长度超过了4MB,编译出错还是编译结果出错不记得了,最后是简化了这种层套定义才得以解决

    随着数据结构的不断复杂化,这种层套式的定义最终仍将变成一个巨大的负担

    请问各位有什么好的解决方法?

    2015年12月25日 8:12

全部回复

  • 你好,

    “是否必须使用宏定义的方式实现数据结构?  可以将需求提出来,看看是否有其他方式解决。 嵌套宏定义会增加源代码长度是无可避免的,必须使用的话,建议生成预编译文件,查看并减少不必要的嵌套宏定义,经常使用 的代码以函数的形式实现。”


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年12月28日 8:49