खोज…


टिप्पणियों

मैक्रोज़ और फ़ंक्शंस के बीच मुख्य अंतर यह है कि मैक्रोज़ का मूल्यांकन वर्तमान संदर्भ में किया जाता है, जबकि फ़ंक्शंस वर्तमान के भीतर एक नया दायरा खोलते हैं। इस प्रकार, फ़ंक्शन के मूल्यांकन के बाद कार्यों के भीतर परिभाषित चर ज्ञात नहीं होते हैं। इसके विपरीत, मैक्रो के भीतर चर का मूल्यांकन होने के बाद भी परिभाषित किया जाता है।

इनपुट के आधार पर एक चर को परिभाषित करने के लिए सरल मैक्रो

macro(set_my_variable _INPUT)
  if("${_INPUT}" STREQUAL "Foo")
    set(my_output_variable "foo")
  else()
    set(my_output_variable "bar")
  endif()
endmacro(set_my_variable)

मैक्रो का उपयोग करें:

set_my_variable("Foo")
message(STATUS ${my_output_variable})

छप जाएगा

-- foo

जबकि

set_my_variable("something else")
message(STATUS ${my_output_variable})

छप जाएगा

-- bar

दिए गए नाम के एक वेरिएबल को भरने के लिए मैक्रो

macro(set_custom_variable _OUT_VAR)
  set(${_OUT_VAR} "Foo")
endmacro(set_custom_variable)

इसके साथ प्रयोग करें

set_custom_variable(my_foo)
message(STATUS ${my_foo})

जो छपेगा

-- Foo


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow