C代码片段
#include <math.h>
#include <complex.h>
int puwg92_do_wgs84(double Xpuwg, double Ypuwg)
{
double m0 = 0.9993;
double x0 = -5300000.0;
double y0 = 500000.0;
double Snorm = 2.0E-6;
double xo_prim = 5765181.11148097;
double b0=5760000;
double b1=500199.26224125;
double b2=63.88777449;
double b3=-0.82039170;
double b4=-0.13125817;
double b5=0.00101782;
double b6=0.00010778;
double Xgk, Ygk;
Xgk=(Xpuwg-x0)/m0;
Ygk=(Ypuwg-y0)/m0;
_Dcomplex Zmerc;
_Dcomplex Z;
Z._Val[0] = (Xgk - xo_prim)*Snorm;
Z._Val[1] = Ygk*Snorm;
Zmerc = b0+Z*(b1+Z*(b2+Z*(b3+Z*(b4+Z*(b5+Z*b6)))));
...
}
在最后一行“Zmerc = b0 + Z *(......”:
error C2088:'*' : illegal for the struct
expression must have arithmetic type
我错了什么? 默认情况下,C99支持无法启用?