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 string substitution using C51 define directive

I'm trying to pass a string using the C51 DEFINE directive from command line. i.e. DEFINE(SERIAL="FOOBAR")

When compiling, it is converted to an identifier (FOOBAR) instead of remaining as a string literal ("FOOBAR").
Is there a way to force it to remain as a string literal?

Parents
  • It's not necessarily the Compiler that's doing it - it might be uVision stripping the quotes before they get to the compiler...?

    Or it might be something else that happens betwen uVision and the compiler...

    Have you tried doubling-up the quotes; eg,

    DEFINE(SERIAL=""FOOBAR"")

Reply
  • It's not necessarily the Compiler that's doing it - it might be uVision stripping the quotes before they get to the compiler...?

    Or it might be something else that happens betwen uVision and the compiler...

    Have you tried doubling-up the quotes; eg,

    DEFINE(SERIAL=""FOOBAR"")

Children
No data