किसी भी सीमा कार्यान्वयन परिभाषित किया गया है, लेकिन मानक कम से कम 15 की आवश्यकता है देखें, कुछ और के रूप में 5.2.4.1
एक ही स्थिति देखें: जब यह गलत है, और जब यह अनावश्यक है। सबसे प्रसिद्ध उदाहरण शायद यह है कि आपको malloc
से वापसी मूल्य नहीं डालना चाहिए। यह व्यर्थ है [*] और यह कभी-कभार बग छुपा सकता है (#शामिल करें)। एक और उदाहरण यह है कि यदि आप यादृच्छिक रूप से तितर-बितर प्रकारों के बीच बिखरे हुए हैं, तो अंततः आप एक संकुचित कास्ट या हस्ताक्षरित और हस्ताक्षरित मानों के बीच तुलना करने के लिए एक कंपाइलर चेतावनी दबाएंगे, जिसे आपने ध्यान देना चाहिए था। इस तरह की चेतावनियों को दबाने के लिए तब तक नहीं रखा जाना चाहिए जब तक आप सुनिश्चित न हों कि कोड सही है।
[*] मैं क्योंकि मैं जैसी चीजों के बारे में था, सोचने के लिए एक बिंदु था इस्तेमाल किया:
foo *p = something;
... some time later ...
p = (foo*) malloc(n * sizeof(foo));
डाली एक बग के खिलाफ कुछ संरक्षण प्रदान करता है - sizeof
में गलत प्रकार का उपयोग । दृश्यमान रूप से मैं देख सकता हूं कि कास्ट sizeof
से मेल खाता है, और संकलक जांचता है कि परिवर्तनीय कलाकारों से मेल खाता है, इसलिए मेरे पास सुरक्षा है।
अब मैं लिखना:
p = malloc(n * sizeof(*p));
मैं, सुरक्षा के लिए एक जांच की जरूरत नहीं है क्योंकि मैं निश्चित रूप से पी के प्रकार के लिए सही आकार की स्मृति आवंटित किया है। खैर, यह मानते हुए कि गुणा बहना नहीं है।
स्रोत
2011-01-28 10:48:44
कोई अपराध नहीं, लेकिन ये बहुत अच्छे साक्षात्कार के प्रश्न नहीं हैं। वे आपके पैरों पर विचार करने या उपन्यास समस्याओं को हल करने की आपकी क्षमता के बारे में कुछ भी नहीं दिखाते हैं। मैं किसी भी कंपनी के बारे में आपको एक साक्षात्कार में पूछने पर संदेह करता हूं; ऐसा लगता है कि वे एक इंजीनियर में सही चीजों की तलाश में हैं। – templatetypedef
IMHO सोचने वाले प्रश्नों के साथ मिश्रित है, यह उन लोगों को ढूंढने के लिए उपयोगी होगा जो वास्तव में भाषा को गहराई से जानते हैं और कई मुद्दों पर चर्चा के लिए एक अच्छा प्रारंभिक बिंदु है। – Flexo
@Ashot - पथ की लंबाई अधिकतम स्वीकार्य # निहित घोंसले के लिए कोई सीधा लिंक नहीं है। हालांकि यह कार्यान्वयन परिभाषित किया गया है, लगभग हमेशा प्रत्येक फ़ाइल को अलग-अलग खोला जाता है (जब तक वे अधिकतर सापेक्ष पथ नहीं होते हैं, जो असंभव प्रतीत होते हैं), नामों को संयोजित नहीं किया जाता है और पथ की लंबाई बढ़ती नहीं है। पूर्णांक पदोन्नति नियमों के कारण हस्ताक्षर में आकस्मिक परिवर्तनों को रोकने के लिए – Flexo