问题
#define SOUND_SPEED 0.034;
int rtt; //round trip time in microsecond
double distance;
distance = (double)(rtt*SOUND_SPEED)/2;
It complains error: expected expression before '/' token. Was is it bacause I can't use macro to define decimals or what?
回答1:
Drop the semicolon:
#define SOUND_SPEED 0.034;
^
If you keep it the generated code will look like this:
distance = (double)(rtt*SOUND_SPEED;)/2;
^
回答2:
#define SOUND_SPEED 0.034;
^
Do not use the trailing ;
Actually you should never terminate a macro with a ;:
PRE11-C. Do not conclude macro definitions with a semicolon https://www.securecoding.cert.org/confluence/display/seccode/PRE11-C.+Do+not+conclude+macro+definitions+with+a+semicolon
回答3:
You're using C, but you're trying to use a C++ style // comment. Depending on your compiler, that may not be allowed.
Edit: In fact, gcc -c89 -ansi gives that exact error message for a // comment and a totally different one for the extraneous ; in the define.
来源:https://stackoverflow.com/questions/9524809/macro-definition-error-in-c