The weak variable attribute causes the symbol resulting from the variable declaration to appear in the object file as a weak symbol, rather than a global one. The language feature provides the programmer writing library functions with a way to allow variable definitions in user code to override the library declaration without causing duplicate name errors.
weak variable attribute syntax >>-__attribute__--((--+-weak-----+--))------------------------->< '-__weak__-'
Related information