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

Problem with #elif

Hello,

I am trying unsuccessfully to use directive compilers such as #ifdef #elif with Keil C v6.12 as follows:

#if defined (TOTO)
#include "toto.h"
#elif defined (TATA)
#include "tata.h"
#elif defined (TITI)
#include "titi.h"
#endif

I think it should work, but it doesn't.

Before I was using :

#if defined (TOTO)
#include "toto.h"
#endif

#if defined (TATA)
#include "tata.h"
#endif

#if defined (TITI)
#include "titi.h"
#endif

But in some cases in my code that is not possible to do so, I have to use a #elif.

If someone has experienced the same problem....

Thank you for your help

Best regards,

Christophe

Parents
  • to check what the preprocessor is actually doing, use the PREPRINT option.
    (Check 'C Preprocessor Listing' on the 'Listing' tab in uVision)
    Unfortunately, Keil doesn't have an option to keep comments in the preprocessor listing. Many other compilers do have this, so it might be worth testing the logic of your #ifs on another compiler, if you have one (eg, Borland, MSVC)

Reply
  • to check what the preprocessor is actually doing, use the PREPRINT option.
    (Check 'C Preprocessor Listing' on the 'Listing' tab in uVision)
    Unfortunately, Keil doesn't have an option to keep comments in the preprocessor listing. Many other compilers do have this, so it might be worth testing the logic of your #ifs on another compiler, if you have one (eg, Borland, MSVC)

Children
No data