??? 01/28/08 04:21 Read: times |
#149989 - The Art of correct Constants Responding to: ???'s previous message |
Not all of this is compiler dependent. Some is required by ANSI.
#define MAX_POWER_LOSS 100000 may get you an error #define MAX_POWER_LOSS 100000U or #define MAX_POWER_LOSS 100000UL Would be correct. 255 may be optimized to a byte but it is still signed. 255U #define A_FLOAT 1 may not give the desired results #define A_FLOAT 1.0 will make the compiler use a float. And an int times an int = int with a 16 X 16 multiply an (long)int times an int = int with a 32 X 32 multiply Last I heard a 16 X 32 multiply would violate ANSI. I am not sure if it is still true. |
Topic | Author | Date |
The art of typecasting | 01/01/70 00:00 | |
I'd like to disagree | 01/01/70 00:00 | |
two comments | 01/01/70 00:00 | |
Two comments on comments | 01/01/70 00:00 | |
The Art of correct Constants | 01/01/70 00:00 | |
int - number of bits unknown | 01/01/70 00:00 | |
Corrected Art of correct Constants | 01/01/70 00:00 | |
More assumptions | 01/01/70 00:00 | |
stdint.h | 01/01/70 00:00 | |
Or, in the absence of stdint.h... | 01/01/70 00:00 | |
Const vs #define | 01/01/70 00:00 | |
Opps! | 01/01/70 00:00 | |
which may be a reason to prefer #define over const | 01/01/70 00:00 | |
enum | 01/01/70 00:00 | |
Varies | 01/01/70 00:00 | |
Know Thy Stuff - enum | 01/01/70 00:00 | |
You are right | 01/01/70 00:00 | |
Know Thy Stuff | 01/01/70 00:00 | |
And... | 01/01/70 00:00 | |
I'll pass(cal) on that one :) | 01/01/70 00:00 | |
Everything in C defaults to int, which is signed | 01/01/70 00:00 | |
Never overlook lint | 01/01/70 00:00 | |
before Steve says it... | 01/01/70 00:00 | |
Pascal | 01/01/70 00:00 | |
strong typing | 01/01/70 00:00 | |
why Ada never took off | 01/01/70 00:00 | |
Wirth-less | 01/01/70 00:00 | |
Why ? | 01/01/70 00:00 |