Header Ads

ad728
  • New Updates

    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

    Post Top Ad

    ad728

    Post Bottom Ad

    ad728