|
Packit Service |
8bf002 |
/* e_18_4.t: #define syntax errors. */
|
|
Packit Service |
8bf002 |
|
|
Packit Service |
8bf002 |
/* 18.4: Not an identifier. */
|
|
Packit Service |
8bf002 |
#define "string"
|
|
Packit Service |
8bf002 |
#define 123
|
|
Packit Service |
8bf002 |
|
|
Packit Service |
8bf002 |
/* 18.5: No argument. */
|
|
Packit Service |
8bf002 |
#define
|
|
Packit Service |
8bf002 |
|
|
Packit Service |
8bf002 |
/* 18.6: Empty parameter list. */
|
|
Packit Service |
8bf002 |
#define math( op, a, ) op( (a), (b))
|
|
Packit Service |
8bf002 |
|
|
Packit Service |
8bf002 |
/* 18.7: Duplicate parameter names. */
|
|
Packit Service |
8bf002 |
#define math( op, a, a) op( (a), (b))
|
|
Packit Service |
8bf002 |
|
|
Packit Service |
8bf002 |
/* 18.8: Argument is not an identifier. */
|
|
Packit Service |
8bf002 |
#define NUMARGS( 1, +, 2) (1 + 2)
|
|
Packit Service |
8bf002 |
|
|
Packit Service |
8bf002 |
/* 18.9: No space between macro name and replacement text. */
|
|
Packit Service |
8bf002 |
/*
|
|
Packit Service |
8bf002 |
C90 (Corrigendum 1) forbids this if and only the replacement text begins
|
|
Packit Service |
8bf002 |
with a non-basic-character.
|
|
Packit Service |
8bf002 |
C99 forbids this even when the replacement text begins with basic-
|
|
Packit Service |
8bf002 |
character.
|
|
Packit Service |
8bf002 |
*/
|
|
Packit Service |
8bf002 |
/* From ISO 9899:1990 / Corrigendum 1. */
|
|
Packit Service |
8bf002 |
#define THIS$AND$THAT(a, b) ((a) + (b))
|
|
Packit Service |
8bf002 |
/* Note: the following definition is legal (object-like macro).
|
|
Packit Service |
8bf002 |
#define THIS $AND$THAT(a, b) ((a) + (b))
|
|
Packit Service |
8bf002 |
*/
|
|
Packit Service |
8bf002 |
|