如果问题看起来太明显或太简单,请道歉。不幸的是,在经历了一堆线程并在谷歌上搜索 typedef 加上属性前缀之后,我仍然无法弄清楚。
我在(据称)便携式应用程序中有以下代码片段 -
#ifdef WIN32
#define MY_PREFIX __declspec(dllexport)
#else
#define MY_PREFIX __attribute__((visibility("default")))
#endif
typedef MY_PREFIX bool some_func(void);
所以我的问题是 -
1) typedef 到底在做什么?
2) 代码在 VS2008 上编译得很好,但在 G++ (gcc-4.1) 上,我收到警告“'visibility' 属性被忽略”
有什么办法可以删除该警告吗?(省略 -Wattributes 不是一种选择)
谢谢!