我有一些宏,#define dosomething(x) something(x)
它被编译成一个dll。我会在构建创建的那个库中拥有那个宏吗?
问问题
147 次
3 回答
7
不。
编译器甚至看不到宏。它们在预处理期间被替换文本替换,这发生在最开始。宏是愚蠢的,它们对您或您的动机一无所知。他们甚至不知道你在写什么语言。谨防!
于 2011-08-12T08:17:12.930 回答
4
不。
宏只是源代码级别的(并非如此)精心制作的复制粘贴设备。它们在编译之前被扩展,编译器不知道它们的存在。
如果要将dosomething
符号导出到库中,则必须将其声明为函数。
于 2011-08-12T08:15:55.460 回答
3
宏仅由预处理器使用和处理。编译器不使用它们,链接器也不知道它们。所以,答案是否定的。不导出宏。
你需要什么?你不能只#include
给头文件吗?
于 2011-08-12T08:16:23.663 回答