#
का कार्य क्या है? #in30e <stdio.h> से पहले # आवश्यक क्यों है?
उत्तर
क्योंकि # एक संकेतक है कि इसकी एक पूर्वप्रक्रमक बयान
अर्थ से पहले ही अपने कोड को संकलित करता है यह है, यह क्योंकि #
शुरू करने के लिए मानक उपसर्ग है फ़ाइल stdio.h
शामिल करने के लिए जा रहा है प्रीप्रोसेसर स्टेटमेंट्स।
प्रारंभिक सी कंपाइलर्स में, प्री-प्रोसेसर एक अलग प्रोग्राम था जो सभी प्रीप्रोसेसर स्टेटमेंट्स (जैसे सी ++ "कंपाइलर्स" जैसे सीफ्रंट जेनरेट सी कोड) के समान होता है और संकलक के लिए सी कोड उत्पन्न करता है (यह अभी भी एक अलग कार्यक्रम हो सकता है लेकिन यह आजकल संकलक का एक चरण भी हो सकता है)।
#include <stdio.h>
#if 0
#endif
#pragma treat_warnings_as_errors
#define USE_BUGGY_CODE
और इतने पर:
#
प्रतीक जैसे सिर्फ एक उपयोगी चरित्र कि पूर्वप्रक्रमक द्वारा मान्यता प्राप्त किया जा सकता है और पर काम किया है।
यह denotes a preprocessor directive:
एक महत्वपूर्ण बात आप को याद करने की जरूरत है कि सी पूर्वप्रक्रमक सी संकलक का हिस्सा नहीं है।
सी प्रीप्रोसेसर एक अलग वाक्यविन्यास का उपयोग करता है। सी प्रीप्रोसेसर में सभी निर्देश एक पाउंड साइन (#) से शुरू होते हैं। दूसरे शब्दों में, पाउंड चिह्न प्रीप्रोसेसर निर्देश की शुरुआत को दर्शाता है, और यह लाइन पर पहला नॉनस्पेस चरित्र होना चाहिए।
#
शायद सी वाक्य रचना में एक अन्यथा अप्रयुक्त चरित्र के रूप में मनमाने ढंग से चुना गया था। @
ने भी काम किया होगा, मुझे लगता है।
यदि कोई चरित्र नहीं बताता है, तो प्रीप्रोसेसर के लिए कोड के बीच अंतर को अलग करने में शायद समस्या होगी - आप कैसे बताएंगे कि if (FOO)
प्रीप्रोसेस्ड होना था या नहीं?
प्रीप्रोसेसर निर्देश हमारे कार्यक्रमों के कोड में शामिल हैं जो कार्यक्रम विवरण नहीं हैं बल्कि प्रीप्रोसेसर के लिए निर्देश हैं। ये रेखाएं हमेशा हैश चिह्न (#) से पहले होती हैं। प्रीप्रोसेसर कोड शुरू होने के वास्तविक संकलन से पहले निष्पादित किया जाता है, इसलिए प्रीप्रोसेसर बयान द्वारा उत्पन्न किए जाने से पहले इन सभी निर्देशों को पचता है।
#
एक पूर्व प्रोसेसर के निर्देश है। प्रीप्रोसेसर स्रोत फ़ाइल समावेशन (#include
), मैक्रो परिभाषाओं (#define
), और सशर्त समावेशन (#if
) के लिए निर्देशों को संभालता है। जब प्री-प्रोसेसर इस से मुठभेड़ करता है, तो इसमें हेडर शामिल होंगे, मैक्रोज़ का विस्तार होगा और संकलन की ओर बढ़ेगा। इसका उपयोग अन्य उद्देश्यों के लिए किया जा सकता है जैसे # आतंक निर्देश का उपयोग करके संकलन को रोकना। इसे सशर्त संकलन कहा जाता है।
हम जानते हैं, प्रीप्रोसेसर प्रोग्राम के बिना नहीं चलते हैं। और प्रीप्रोसेसर # या # शामिल या # परिभाषित या अन्य है।इसलिए # शामिल होने से पहले # आवश्यक है।
- 1. jquery - $ (दस्तावेज़) है। पहले से ही आवश्यक है?
- 2. jQuery सीखने से पहले जावास्क्रिप्ट सीखना आवश्यक है?
- 3. डेटाबिंड() विधि क्यों आवश्यक है?
- 4. क्या एचटीटीपीएस पर भेजने से पहले हैश पासवर्ड आवश्यक है?
- 5. बचत बटन क्यों आवश्यक है?
- 6. ": nodoc:" वाक्यविन्यास क्यों आवश्यक है?
- 7. दूसरा cin.ignore() आवश्यक क्यों है?
- 8. डीजेगो फॉर्मेट्स: पहले आवश्यक बनाना?
- 9. कंपाइलर्स कैसे जानते हैं कि #in30e <stdio.h> कहां मिलना है?
- 10. क्यों (?! ^) बराबर है (? <! ^)?
- 11. आगे की घोषणा क्यों आवश्यक है?
- 12. जावास्क्रिप्ट <!-- //--> आवश्यक हैं?
- 13. {} <function() {} क्यों है?
- 14. WinRT में DefaultOverloadAttribute क्यों आवश्यक है?
- 15. जावा में स्ट्रिंग [] तर्क क्यों आवश्यक है?
- 16. मुझे सरणी से पहले तारांकन की आवश्यकता क्यों है?
- 17. एक नया शाखा ध्वज क्यों आवश्यक है?
- 18. कोई योग्यता क्यों आवश्यक नहीं है?
- 19. <head> में जावास्क्रिप्ट या</body> से पहले?
- 20. क्या इसे बंद करने से पहले एपोल से सॉकेट को अपनाना आवश्यक है?
- 21. रुबी से एसटीडीईआरआर आउटपुट रीडायरेक्ट करते समय पहले एसटीडीओयूटी आउटपुट से पहले क्यों आता है?
- 22. निष्पादन() से पहले कॉलिंग() को छोड़ने से पहले आवेदन क्यों नहीं छोड़ता है?
- 23. क्या जावा अस्थिर चर इसके पढ़ने से पहले एक पहले से पहले संबंध लगाते हैं?</p> <p><sub> स्निपेट एक::
- 24. क्यों स्टेटिक कीवर्ड से पहले समारोह हस्ताक्षर
- 25. <script> टैग के लिए 'टाइप' विशेषता आवश्यक है?
- 26. क्या git svn recommase git svn dcommit से पहले आवश्यक है?
- 27. jQuery पोजिशनिंग आवश्यक है <! DOCTYPE HTML>
- 28. स्टाइलिंग <input आवश्यक ...> WebKit में
- 29. क्यों पाइथन स्रोत से पहले बाइटकोड को संकलित करता है?
- 30. printf पर कॉल करने से पहले% eax शून्य क्यों है?