, .
#define func(X,Y,Z) func2(X,Y,Z,#Z)
. func (X, Y, Z) - . , func (PAR, Z).
- , , , (, func() - ), , func(). func2() , . , , , .
, , func (PAR, Z) , ,
13:12: error: macro "func" requires 3 arguments, but only 2 given
func (X, Y, Z) , X Y .
( , , " 3 14 3", ):
#include <stdio.h>
#include <stdlib.h>
#define PAR 10,20
#define MAR 3
#define WAR 14
#define func(X,Y,Z) print(X, Y, Z)
int Z = 3;
int main(void){
func(MAR,WAR,Z);
return 0;
}
void print(int x, int y, int c){
printf("%d %d %d\n", x, y, c);
}
, ( , FYI).