Error on expected identifier dependent on characters used in identifier

I've include the MPU6050 library into my project and when I compile I get the following error:

d:\Development\CSense\C-Sense2.0\libraries\MPU6050/MPU6050.h:57:37: error: expected identifier before numeric constant
 #define MPU6050_ADDRESS_AD0_HIGH    0x69 // address pin high (VCC)
                                     ^

When i change the name of MPU6050_ADDRESS_AD0_HIGH to something like MPU6050_ADDRESS_AD0_HIGG everything compiles fine! (Well of course I do get errors about ..HIGH not being defined but no error on the #define..

If I change it back again to ..HIGH then the original error comes up again.

How is this possible?

Never mind ... though the error was marked in line containing the #define it was actually caused by the line where the defined constant was used. I used the wrong braces when declaring an object with the define as a parameter..

MPU6050 mpu(MPU6050_ADDRESS_AD0_HIGH)

should be

MPU6050 mpu{MPU6050_ADDRESS_AD0_HIGH}

...and that's why we ask you to post the code and the error message.

Well .. the code wouldn't have made you much the wiser... As I wouldnt have thought of adding the code where the define is used (and my project contains over 40 source files)

#define MPU6050_ADDRESS_AD0_HIGH    0x69 // address pin high (VCC).

Anyway I learned that when the error location indication is a #define I should look at the use of that define which is kinda logical as that is the first time where the text substitution takes place