相关疑难解决方法(0)

看到扩展的C宏

如果我想扩展一个C宏,有什么好方法可以做到这一点(除了手动跟踪)?

例如,GTK_WIDGET_SET_FLAGS它使用一个使用宏的宏(或两个)......

我希望看到它以某种方式自动扩展,而不是搜索每一个宏,每一步.

UPDATE

我试过cpp,但似乎只做了第一次传球

上:

GTK_WIDGET_SET_FLAGS(obj, 13)
Run Code Online (Sandbox Code Playgroud)

我扩展了包含文件,然后:

G_STMT_START{ ((GTK_OBJECT_FLAGS (obj)) |= (13)); }G_STMT_END
Run Code Online (Sandbox Code Playgroud)

这是由这些错误消息解释我在stderr上得到这个(当使用-o filename时)

gtk/gtkwidget.h:34:21: gdk/gdk.h: No such file or directory
gtk/gtkwidget.h:35:31: gtk/gtkaccelgroup.h: No such file or directory
gtk/gtkwidget.h:36:27: gtk/gtkobject.h: No such file or directory
gtk/gtkwidget.h:37:31: gtk/gtkadjustment.h: No such file or directory
gtk/gtkwidget.h:38:26: gtk/gtkstyle.h: No such file or directory
gtk/gtkwidget.h:39:29: gtk/gtksettings.h: No such file or directory
gtk/gtkwidget.h:40:21: atk/atk.h: No such file or directory

gtk,atk和gdk目录都在当前的工作目录中,那么如何让cpp在其中搜索呢?

顺便说一句,gcc -E给出完全相同的输出cpp

UPDATE2:

通过使用gcc -E并使用-I选项传递include目录来解决包含路径问题

c c-preprocessor

47
推荐指数
7
解决办法
5万
查看次数

标签 统计

c ×1

c-preprocessor ×1