... सी ++मैं नाम उलझन से कैसे बच सकता हूं?
उत्तर
आप नहीं कर सकते। यह कंपाइलरों में बनाया गया है ताकि आप कार्यों को अधिभारित कर सकें और विभिन्न वर्गों और ऐसी सामग्री में समान नाम के साथ कार्य कर सकें। लेकिन आप उन कार्यों को लिख सकते हैं जो सी कार्यों की तरह उलझन में हैं। जिन्हें सी कोड से बुलाया जा सकता है। लेकिन उन अतिभारित नहीं किया जा सकता और "सामान्य" सी ++ समारोह संकेत से नहीं कहा जा सकता:
extern "C" void foo() {
}
ऊपर समारोह अपने संकलक के लिए सी कार्यों की तरह घायल कर दिया जाएगा। इसमें नाम पर कोई बदलाव नहीं हो सकता है, या इसके सामने किसी भी "_" जैसे कुछ बदलाव शामिल हो सकते हैं।
आपका मतलब है कि आप लाइब्रेरी से अपना फ़ंक्शन निर्यात कर सकते हैं? extern "c" {}
अन्य तरीका:
नियंत्रण नाम असेंबलर संहिता में प्रयुक्त (gcc spec.)
आप नाम निर्दिष्ट कर सकते हैं एक सी समारोह या चर लेखन से लिए कोडांतरक कोड में इस्तेमाल किया जाएगा एएसएम (या __asm__) घोषणाकर्ता के बाद कीवर्ड। यह सुनिश्चित करने के लिए आप पर निर्भर है कि आपके द्वारा चुने गए असेंबलर नाम किसी भी अन्य असेंबलर प्रतीकों, या संदर्भ रजिस्टरों के साथ संघर्ष नहीं करते हैं।
इस तरह के कार्यों के लिए कोडांतरक नाम निर्दिष्ट करने के लिए, अपनी परिभाषा से पहले समारोह के लिए एक घोषणा लिख सकते हैं और वहाँ एएसएम शब्दों में कहें,:
int func() asm ("MYFUNC");
int func()
{
g++
यह संकलन होगा और nm -D
उत्पादन
0000000000001e02 T MYFUNC
बजाय
0000000000001e02 T _Z4funcv
जी ++ 4.9.2
- 1. मैं AlassetLibrary से स्थान सेवा से कैसे बच सकता हूं?
- 2. मैं वैश्विक स्थिति से कैसे बच सकता हूं?
- 3. मैं वीआई में स्लैश चरित्र से कैसे बच सकता हूं?
- 4. मैं वाईएएमएल में% वर्णों से कैसे बच सकता हूं?
- 5. मैं चींटी में डबल-कोट्स से कैसे बच सकता हूं?
- 6. मैं गेटटेक्स्ट स्ट्रिंग में '%' वर्ण से कैसे बच सकता हूं?
- 7. मैं एनएसएसटींग में यूनिकोड वर्णों से कैसे बच सकता हूं?
- 8. मैं व्यूमोडेल में कमांड क्लटर से कैसे बच सकता हूं?
- 9. क्या मैं परिवर्तनीय नामों में वर्णों से बच सकता हूं?
- 10. मैं इस कोड से उलझन में हूं
- 11. क्या मैं जावा संदेशफॉर्मैट में ब्रेसिज़ से बच सकता हूं?
- 12. रूबी रेगेक्स में मैं बच निकलने वाला चरित्र ("बच निकला नहीं" चरित्र कैसे लगा सकता हूं?
- 13. मैं एक झुकाव खंड में स्क्वायर ब्रैकेट से कैसे बच सकता हूं?
- 14. मैं कैसे ज़ेडग्राफ से बच सकता हूं, मेरे वाईएक्सिस को 1000 से विभाजित करता है?
- 15. मैं बढ़ती TDictionary के साथ मेमोरी से बाहर निकलने से कैसे बच सकता हूं?
- 16. मैं अपने पंजीकरण फॉर्म में ब्राउज़र प्रीपॉप्लेटिंग फ़ील्ड से कैसे बच सकता हूं?
- 17. मैं दो नियंत्रक कार्यों के बीच अस्पष्ट मैच अपवाद से कैसे बच सकता हूं?
- 18. मैं बहिष्कृत तरीकों से कैसे बच सकता हूं और पीछे की संगतता को कैसे बनाए रख सकता हूं?
- 19. मैं जावा में ResultSet बंद अपवाद से कैसे बच सकता हूं?
- 20. प्रोग्राम को ईमेल भेजते समय मैं Outlook की सुरक्षा चेतावनी से कैसे बच सकता हूं?
- 21. मैं इनलाइन तत्व में लाइन ब्रेक से कैसे बच सकता हूं?
- 22. सीएसएस के साथ आखिरी पंक्ति पर मैं एक शब्द से कैसे बच सकता हूं?
- 23. मैं एसक्यूएल डेवलपर में "कच्ची परिवर्तनीय लंबाई बहुत लंबी" त्रुटियों से कैसे बच सकता हूं?
- 24. मैं अभ्यास में खराब सिंगलेट्स से कैसे बच/प्रतिक्रिया कर सकता हूं?
- 25. मैं पैटर्न मिलान करने वाले कार्यों के लिए बॉयलरप्लेट कोड लिखने से कैसे बच सकता हूं?
- 26. मैं डब्ल्यूपीएफ फुलस्क्रीन ऐप में फ्लिकर से कैसे बच सकता हूं?
- 27. प्रवाह नियंत्रण के लिए अपवादों का उपयोग करने से मैं कैसे बच सकता हूं?
- 28. मैं डब्ल्यूसीएफ में विशाल संचार कक्षाओं से कैसे बच सकता हूं?
- 29. मैं PHP पर "#!/Usr/bin/php" दिखाने से कैसे बच सकता हूं?
- 30. मैं पाइथन में बैकस्लैश-एस्केपड स्ट्रिंग को कैसे से बच सकता हूं?
बस एक छोटी सी निट पर परीक्षण किया गया: इस तरह के कार्यों निश्चित रूप से ++ समारोह संकेत सी से कहा जा सकता है: extern "सी" शून्य foo() {printf ("foo \ n"); } int मुख्य() { शून्य (* एफ)(); एफ = foo; एफ(); } –
मुझे लगता है कि आपका मतलब है "सी फ़ंक्शंस की तरह असम्बद्ध" :-) – paxdiablo
पैक्स, सी कंपाइलर भी उलझ सकते हैं। उदाहरण के लिए जीसीसी में "-फ्लैडिंग-अंडरस्कोर" विकल्प है। मुझे याद है कि कुछ लड़के ने मुझे बताया कि मैकोक्स ने अपने सी नामों को अंडरस्कोर के साथ उलझाया है। (मेरे पास macosx नहीं है इसलिए मैं जांच नहीं कर सकता :))। –