我有一个小小的Windows(7)GCC(4.8.1 64位)控制台程序,我只是用它来测试一些东西。我编写的其中一个标题使用了alias
属性,我最后一次使用它所使用的文件时,我确信这个属性符合预期。
然而,现在,当我调用别名时运行程序Windows告诉我程序已停止工作!如果我在没有别名的情况下直接调用函数,一切都按预期工作......
相关代码位于文件foo.h
中,该文件包含在.c
文件中,该文件包含调用别名的main()
。
foo.h中:
#include<stdint.h>
#ifndef FOO_H_
#define FOO_H_
static inline int32_t _foo (int32_t x, int32_t y) {
// Do foo stuff here. This works when called directly.
}
// But calling via this alias crashes...
int32_t _bar (int32_t x, int32_t y) __attribute__ ((weak, alias ("_foo")));
#endif
我做错了吗?有没有其他人看到这导致程序崩溃?