Suppress warning from redefinition of macros
Workaround for compiler not supporting variable-length array
Fixed warning
fixed a few warnings