C90 does not permit a
#pragma directive to
be produced as the result of a macro expansion. However, the C99
enables you to embed a preprocessor macro in a pragma directive,
_Pragma is permitted in C90 if
not specified. For example:
# define RWDATA(X) PRAGMA(arm section rwdata=#X) # define PRAGMA(X) _Pragma(#X) RWDATA(foo) // same as #pragma arm section rwdata="foo" int y = 1; // y is placed in section "foo"