38 lines
826 B
C
38 lines
826 B
C
|
/* e_19_3.c: Redefinitions of macros. */
|
||
|
|
||
|
#include "defs.h"
|
||
|
#define str( s) # s
|
||
|
#define xstr( s) str( s)
|
||
|
|
||
|
/* Excerpts from ISO C 6.8.3 "Examples". */
|
||
|
|
||
|
#define OBJ_LIKE (1-1)
|
||
|
#define FTN_LIKE(a) ( a )
|
||
|
|
||
|
/* The following redefinitions should be diagnosed. */
|
||
|
|
||
|
/* 19.3: */
|
||
|
#define OBJ_LIKE (0) /* different token sequence */
|
||
|
|
||
|
/* 19.4: */
|
||
|
#undef OBJ_LIKE
|
||
|
#define OBJ_LIKE (1-1)
|
||
|
#define OBJ_LIKE (1 - 1) /* different white space */
|
||
|
|
||
|
/* 19.5: */
|
||
|
#define FTN_LIKE(b) ( a ) /* different parameter usage */
|
||
|
|
||
|
/* 19.6: */
|
||
|
#undef FTN_LIKE
|
||
|
#define FTN_LIKE(a) ( a )
|
||
|
#define FTN_LIKE(b) ( b ) /* different parameter spelling */
|
||
|
|
||
|
/* 19.7: Not in ISO C "Examples" */
|
||
|
#define FTN_LIKE OBJ_LIKE
|
||
|
|
||
|
main( void)
|
||
|
{
|
||
|
return 0;
|
||
|
}
|
||
|
|