数组初始化的有关问题

数组初始化的问题
下述代码用VC能编译通过,用其它的编译器则不行,错误提示:Serious   error:   C2432E:   non-constant   initialiser
有没有哪位帮忙指点一下,谢谢.

#define   DWORD   unsigned   int
#define   SDWORD   signed   int

static   SWORD   neg_pow2[17]={0,-1,-3,-7,-15,-31,-63,-127,-255,-511,-1023,-2047,-4095,-8191,-16383,-32767};
static   DWORD   start_neg_pow2=(DWORD)neg_pow2;

------解决方案--------------------
#define SWORD signed int

static SWORD neg_pow2[17]={0,-1,-3,-7,-15,-31,-63,-127,-255,-511,-1023,-2047,-4095,-8191,-16383,-32767};