you have this in your code, 'double alpha[30];'. The preprocessor does what it's supposed to do and replaces all of occurrences of alpha with 1 and the compiler sees code like this 'double 1[10]' which it summarily yacks on. :)