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

Other const in const structure definition

Hi all,

I have a small issue with a definition with arm C compiler regarding constants.
In an assembly code I define a constant with :

Version EQU 0x01000100

In my main C file I import this const by :

extern unsigned int const Version;

Now my problem is to put this const in another const based on a struct :

const myType titi = { ..., // blabla Version, ... // blabla
};

The compiler gives an error :
Main.c(60): error: #28: expression must have a constant value
But it's a constant !!!

Since my goal is to avoid multiple definition of same constant in severaal files, I'm looking for a solution to solve this problem.

Thanks by advance !

Parents
  • What tool is it that allows an EQU (a text macro in the scope of the assembler) to be accessible as a named symbol to the linker?

    Those where EQU is actually not a text macro. The tell-tale signs that this is the case for a given assembler are:

    * you can publish an EQU (PUBLIC, EXPORT, ...)
    * redefinining EQUs is forbidden
    * there are special rules for the value of an EQU (numeric, constant)
    * there is another facility for actual text replacement macros

Reply
  • What tool is it that allows an EQU (a text macro in the scope of the assembler) to be accessible as a named symbol to the linker?

    Those where EQU is actually not a text macro. The tell-tale signs that this is the case for a given assembler are:

    * you can publish an EQU (PUBLIC, EXPORT, ...)
    * redefinining EQUs is forbidden
    * there are special rules for the value of an EQU (numeric, constant)
    * there is another facility for actual text replacement macros

Children
No data