This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

cast?

Does anybody know, how one have to cast an operation correctly? And is it necessary to tell the compiler that a constant is unsined long

#define dword unsigned long
unsigned char ucH;    //hours
unsigned char ucM;    //minutes
unsigned char ucS;    //seconds
dword ulTime;         //Time in s

GetTime(...);
ulTime = ucS + ucM*60 + ucH*3600;
[..]
this won't work! How do I have to cast the calculation?

ulTime = (dword)(ucS + ucM*60 + ucH*3600);
or
ulTime = ucS + (dword)ucM*60 + (dword)ucH*3600);
or ???

I have tried to find any written description (K&R, C166-Reference) but I could't find anything about this theme!

Do I have to use 3600 or 3600ul?

Thank you
...Leo

Parents Reply Children
  • I will check whether your suggestion will work in all cases or not :-). I hope fervently that C166 will keep to ANSI-C!

    The C166 compiler is ANSI compliant as tested using the test suites that we have.

    My suggestion is one of many ways to do things, but it should work with ANY ANSI C compilter.

    Jon