21-06-2019, 07:26 AM
Is the use of the function-like macro compliant (shown in Example 1 and 2 below) with Dir-4.9, in a case when a function-like macro and a function are not interchangeable?
Example 1:
-----------------------------------------------
#define ASSIGN( a, b ) ( ( a ) = ( b ) )
-----------------------------------------------
Example 2:
-----------------------------------------------
#define MACRO( a, b )
int32_t var1;
MACRO(var1,var2)
-----------------------------------------------
The macros are not interchangeable with functions,
because in Example 1, the arguments can't be modified if it is defined as a function,
and in Example 2, compile error occurs because var2 is not defined.
Example 1:
-----------------------------------------------
#define ASSIGN( a, b ) ( ( a ) = ( b ) )
-----------------------------------------------
Example 2:
-----------------------------------------------
#define MACRO( a, b )
int32_t var1;
MACRO(var1,var2)
-----------------------------------------------
The macros are not interchangeable with functions,
because in Example 1, the arguments can't be modified if it is defined as a function,
and in Example 2, compile error occurs because var2 is not defined.
<t></t>