Nesting of Macros
Nesting of Macros
अन्य
Statements
की तरह हम Macros की भी Nesting कर सकते हैं जैसे
#define x 10
#define PI 3.1415
#define SQUARE(z) ((z)*(z))
#define CUBE (x) (SQUARE (x)*(z))
एक
Macro
को किसी दूसरे Macro में Parameter के रूप में भी Use किया जा सकता है |
जैसे
ऊपर के Code
में हमने x व y को एक
Macro बनाया है | इन्हें
हम निम्नानुसार किसी अन्य Macro में Argument के रूप में भी Pass कर सकते हैं |
#define MAX(x,y) (((x)>(y) ? (x) : (y))
इसी
Macro
को हम निम्नानुसार Nested भी कर सकते हैं |
int Maximum;
Maximum = MAX (x, (MAX(y,z))
ये
Nested
Macro तीन संख्याओं में से बड़ी संख्या Return करेगा
| एक बात हमेंशा
ध्यान रखें कि Macro Template व उसके Argument
List के बीच किसी तरह का Space नहीं होना
चाहिए | जैसे
#define MAX(x,y) (((x) > (y) ? (x) : (y))
ये
Macro
काम नहीं करेगा | क्योंकि
MAX
व उसके Arguments के बीच Space दिया गया है |
No comments