Files correlati : Commento : Aggiunto il preprocessore c++ mcpp per sostituire il compilatore nella compilazione delle maschere.
27 lines
574 B
C
27 lines
574 B
C
/* u_1_25.c: Undefined behaviors on undefined macro argument. */
|
|
|
|
#include <stdio.h>
|
|
#define str( a) # a
|
|
#define sub( x, y) (x - y)
|
|
#define SUB sub
|
|
|
|
main( void)
|
|
{
|
|
int a = 1, b = 2;
|
|
|
|
/* u.1.25: Macro argument otherwise parsed as a directive. */
|
|
/* "#define NAME"; or other undefined behaviour. */
|
|
puts( str(
|
|
#define NAME
|
|
));
|
|
|
|
#if 0 /* Added by C90: Corrigendum 1 (1994) and deleted by C99 */
|
|
/* u.1.26: Expanded macro replacement list end with name of function-like
|
|
macro. */
|
|
SUB( a, b);
|
|
#endif
|
|
|
|
return 0;
|
|
}
|
|
|