GCC 7.3 - 4.2.2. If

४.२.२ यदि




gcc

४.२.२ यदि

' #If ' निर्देश आपको एक मैक्रो के अस्तित्व के बजाय एक अंकगणितीय अभिव्यक्ति के मूल्य का परीक्षण करने की अनुमति देता है। इसका वाक्य विन्यास है

#if expression

controlled text

#endif /* expression */

अभिव्यक्ति पूर्णांक प्रकार की एक सी अभिव्यक्ति है, जो कड़े प्रतिबंधों के अधीन है। इसमें शामिल हो सकता है

  • पूर्णांक स्थिरांक।
  • चरित्र स्थिरांक, जिनकी व्याख्या की जाती है क्योंकि वे सामान्य कोड में होंगे।
  • इसके अलावा, घटाव, गुणा, भाग, बिटवाइज़ संचालन, पारियों, तुलनाओं और तार्किक संचालन (और && और || ) के लिए अंकगणितीय संचालक। बाद के दो मानक सी के सामान्य शॉर्ट-सर्किटिंग नियमों का पालन करते हैं।
  • मैक्रो। अभिव्यक्ति के मूल्य की वास्तविक गणना शुरू होने से पहले अभिव्यक्ति में सभी मैक्रोज़ का विस्तार किया जाता है।
  • defined ऑपरेटर का उपयोग, जो आपको यह जांचने देता है कि क्या मैक्रोज़ ' #if ' के बीच में परिभाषित किए गए हैं।
  • पहचानकर्ता जो मैक्रोज़ नहीं हैं, जिन्हें सभी संख्या शून्य माना जाता है। यह आपको #if MACRO बजाय #if MACRO लिखने की अनुमति देता है, यदि आप जानते हैं कि MACRO, जब परिभाषित किया जाता है, तो हमेशा एक गैर-मूल्य होगा। उनके फ़ंक्शन कॉल कोष्ठक के बिना उपयोग किए जाने वाले फ़ंक्शन-जैसे मैक्रोज़ को भी शून्य के रूप में माना जाता है।

    कुछ संदर्भों में यह शॉर्टकट अवांछनीय है। -Wundef विकल्प GCC को चेतावनी देने का कारण बनता है जब भी यह एक पहचानकर्ता का सामना करता है जो ' #if ' में मैक्रो नहीं है।

प्रीप्रोसेसर को भाषा में कुछ भी नहीं पता है। इसलिए, sizeof ऑपरेटरों को ' #if ' में मान्यता प्राप्त नहीं है, और न ही enum स्थिरांक हैं। उन्हें पहचानकर्ता के रूप में लिया जाएगा जो मैक्रोज़ नहीं हैं, और शून्य द्वारा प्रतिस्थापित किया गया है। sizeof के मामले में, यह अभिव्यक्ति को अमान्य होने की संभावना है।

प्रीप्रोसेसर अभिव्यक्ति के मूल्य की गणना करता है। यह संकलक को ज्ञात व्यापक पूर्णांक प्रकार में सभी गणना करता है; GCC द्वारा समर्थित अधिकांश मशीनों पर यह 64 बिट्स है। यह समान नियम नहीं है क्योंकि कंपाइलर एक स्थिर अभिव्यक्ति के मूल्य की गणना करने के लिए उपयोग करता है, और कुछ मामलों में अलग-अलग परिणाम दे सकता है। यदि मान गैर-शून्य हो जाता है, तो ' #if ' सफल होता है और नियंत्रित पाठ शामिल होता है; अन्यथा इसे छोड़ दिया जाता है।

अगला: Defined , पिछला: Ifdef , Up: सशर्त सिंटैक्स [ Contents ] [ Index ]