c++ - Visual C++ 是否提供与 GCC 中的 `__attribute__((alias))` 功能相同的语言结构?
问题描述
别名(“目标”)
alias 属性导致声明作为另一个符号的别名发出,必须指定。例如,
void __f () { /* Do something. */; } void f () __attribute__ ((weak, alias ("__f")));
定义
f
为 的弱别名__f
。在 C++ 中,必须使用目标的错位名称。如果__f
未在同一翻译单元中定义,则为错误。并非所有目标机器都支持此属性。
解决方案
您可以对 C 执行类似的操作。 x86 和 x64 支持 msvc v19.15。
#include <stdio.h>
void __f() { puts("This function is aliased"); }
void f();
#pragma comment(linker, "/alternatename:f=__f")
int main()
{
f();
}
在此处查看已编译的演示。
我已经在带有/TC
选项的 Visual Studio 2017 中对此进行了测试。
推荐阅读
- r - looking for mutate_if, but for rows not columns
- java - My System.currentTimeMillis() method calls are not registering properly. I don't understand why they stay at 0.0
- python - How can I allow a fuzzy regex match for only part of the pattern?
- python - 与服务器 Python 的多套接字连接
- reactjs - React 中外部资源的链接是空的
- html - 提交后如何向表单添加其他字段
- julia - 预先分配一个字典的字典
- javascript - 如何在javascript node.js中使用console.log打印函数中的变量列表
- arrays - 从打字稿中的数组创建随机不相交的子数组
- android - TextView中的Android sqlite分页