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

Keil C does not support

Keil C does not support this line:

typedef const UINT32 volatile xdata *PCVX32;
it just support this way
typedef const volatile UINT32 xdata *PCVX32;
but other ANSI C compilers support both.
Is it a bug or something else?

Parents
  • "but other ANSI C compilers support..."

    What other compilers?
    Do they have a "Strict ANSI" switch? Have you tried using it?
    Maybe this is a common error in other compilers, and just Keil have got it right...?

    Before quibbling about different compilers' implementations, have you checked what the ANSI spec actually says?

    Also, note that Keil have extended the language by adding support for storage-class specifiers (code, xdata, etc) - maybe it's a side-effect of this?

    Again, you need to refer to the ANSI spec for the definitive answer...

Reply
  • "but other ANSI C compilers support..."

    What other compilers?
    Do they have a "Strict ANSI" switch? Have you tried using it?
    Maybe this is a common error in other compilers, and just Keil have got it right...?

    Before quibbling about different compilers' implementations, have you checked what the ANSI spec actually says?

    Also, note that Keil have extended the language by adding support for storage-class specifiers (code, xdata, etc) - maybe it's a side-effect of this?

    Again, you need to refer to the ANSI spec for the definitive answer...

Children