Windows是否具有与Unix GCC的__attribute __((弱)相当的__declspec?

时间:2012-09-12 21:19:17

标签: c windows unix macros mingw

我想导入一些C代码但覆盖其main()函数。我可以通过在C代码的主声明前加上__attribute__((weak))来在Unix中执行此操作,但是,这不会在Windows中编译,因为Strawberry Perl的GCC和MinGW的GCC都不会识别__attribute__((weak))

在线阅读文档,__declspec似乎功能相似。是否有__declspec等同于Unix GCC的__attribute__((weak))宏?

这是我发布的earlier问题的更具体版本。

2 个答案:

答案 0 :(得分:1)

如果您愿意使用MSVC的另一种方式,我认为会起作用。

/*
 * pWeakValue MUST be an extern const variable, which will be aliased to
 * pDefaultWeakValue if no real user definition is present, thanks to the
 * alternatename directive.
 */

extern const char * pWeakValue;
extern const char * pDefaultWeakValue = NULL;

#pragma comment(linker, "/alternatename:_pWeakValue=_pDefaultWeakValue")

有关其他选项,请参阅this old SO answer

答案 1 :(得分:0)

还有__declspec(selectany)