当我尝试为这些联合定义几个联合和内联函数时,我在 VC++2010 Express 中遇到了一些有趣的错误。我正在尝试构建一个静态库以在许多程序中使用。
typedef union
{
double data[3];
struct { double x, y, z; };
} VECTOR3;
inline VECTOR3 _V3(double x, double y, double z)
{
VECTOR3 vec = { x, y, z };
return vec;
}
typedef union
{
double data[9];
struct { double x0, y0, z0, x1, y1, z1, x2, y2, z2; };
} MATRIX3;
inline MATRIX3 _M3(double x0, double y0, double z0, double x1, double y1, double z1, double x2, double y2, double z2)
{
MATRIX3 mat3 = { x0, y0, z0, x1, y1, z1, x2, y2, z2 };
return mat3;
}
此代码产生错误“C2371:重新定义;不同的基本类型”,但这是定义这些联合的唯一位置。
内联函数产生错误“C2084:函数'FunctionName(ArgumentType)'已经有一个主体”但没有定义其他主体。在此文件中或在任何引用的文件中。
此外,此处显示的代码位于另一个应用程序的 SDK 中。并且使用该 SDK 构建不会产生任何这些错误。
我的搜索都没有任何帮助。