GCC 7.3 - 11.3. Obsolete Features

11.3 अप्रचलित सुविधाएँ




gcc

11.3 अप्रचलित सुविधाएँ

सीपीपी में कुछ विशेषताएं हैं जो मुख्य रूप से पुराने कार्यक्रमों के साथ संगतता के लिए मौजूद हैं। हम नए कोड में उनके उपयोग को हतोत्साहित करते हैं। कुछ मामलों में, हम जीसीसी के भविष्य के संस्करण में सुविधा को हटाने की योजना बनाते हैं।

11.3.1 का जोर

अभिकथन सशर्त लेखन में मैक्रो का एक वैकल्पिक विकल्प है कि यह परीक्षण करने के लिए कि संकलित प्रोग्राम किस प्रकार के कंप्यूटर या सिस्टम पर चलेगा। आम तौर पर दावे पूर्वनिर्धारित होते हैं, लेकिन आप उन्हें प्रीप्रोसेसिंग निर्देशों या कमांड-लाइन विकल्पों के साथ परिभाषित कर सकते हैं।

संकलक के लक्ष्य प्रणाली का वर्णन करने के लिए और अधिक व्यवस्थित तरीके प्रदान करने के उद्देश्य से दावे किए गए थे और हमने मौजूदा संकलक के साथ संगतता के लिए उन्हें जोड़ा। व्यवहार में वे सिस्टम-विशिष्ट पूर्वनिर्धारित मैक्रोज़ की तरह अप्रत्याशित हैं। इसके अलावा, वे किसी भी मानक का हिस्सा नहीं हैं, और केवल कुछ ही कंपाइलर उनका समर्थन करते हैं। इसलिए, सिस्टम-विशिष्ट पूर्वनिर्धारित मैक्रो के उपयोग की तुलना में अभिकथन का उपयोग कम पोर्टेबल है। हम अनुशंसा करते हैं कि आप उनका उपयोग बिल्कुल न करें।

इस तरह दिखता है:

#predicate (answer)

विधेय को एक एकल पहचानकर्ता होना चाहिए। उत्तर टोकन का कोई भी अनुक्रम हो सकता है; व्हाट्सएप को लीड और ट्रेल करने के अलावा सभी पात्र महत्वपूर्ण हैं, और आंतरिक व्हाट्सएप अनुक्रमों में अंतर को नजरअंदाज किया जाता है। (यह स्थूल पुनर्वितरण को नियंत्रित करने वाले नियमों के समान है।) इस प्रकार, (x + y) से भिन्न (x+y) बराबर है। कोष्ठक एक उत्तर के अंदर घोंसला नहीं बनाते हैं।

एक परख का परीक्षण करने के लिए, आप इसे ' # ' में लिखते हैं। उदाहरण के लिए, यह सशर्त सफल होता है यदि या तो vax या ns16000 machine लिए एक उत्तर के रूप में ns16000 किया गया है।

#if #machine (vax) || #machine (ns16000)

आप यह परीक्षण कर सकते हैं कि क्या सशर्त में उत्तर को छोड़ कर किसी विधेय के लिए कोई उत्तर दिया गया है:

#if #machine

दावे ' #assert ' निर्देश के साथ किए गए हैं। इसका एकमात्र तर्क अग्रणी ' # ' के बिना बनाने की मुखरता है, जो सशर्त में मुखरता की पहचान करता है।

#assert predicate (answer)

आप एक ही विधेय और विभिन्न उत्तरों के साथ कई दावे कर सकते हैं। एक ही विधेय के लिए बाद के दावे पिछले वाले को ओवरराइड नहीं करते हैं। किसी भी विधेय के लिए सभी उत्तर एक साथ सत्य हैं।

दावे को ' #unassert ' निर्देश के साथ रद्द किया जा सकता है। इसमें ' #assert ' के समान सिंटेक्स है। उस रूप में यह केवल उस उत्तर को रद्द करता है जो ' #unassert ' लाइन पर निर्दिष्ट किया गया था; उस विधेय के लिए अन्य उत्तर सही रहते हैं। आप उत्तर को छोड़ कर एक पूरी भविष्यवाणी को रद्द कर सकते हैं:

#unassert predicate

किसी भी रूप में, यदि ऐसा कोई दावा नहीं किया गया है, तो ' #unassert ' का कोई प्रभाव नहीं है।

आप कमांड-लाइन विकल्पों का उपयोग करके भी दावे को रद्द या रद्द कर सकते हैं। Invocation देखें।

पिछला: कार्यान्वयन सीमाएँ , ऊपर: कार्यान्वयन विवरण [ Contents ] [ Index ]