2012-12-20 6 views
6

यह प्रश्न What is &&& operation in C के जवाब में है जिसने मुझे & के बारे में सोचने के लिए बाइनरी और पता दोनों के रूप में उपयोग किया।सी में बाइनरी और पता दोनों के लिए `&` क्यों उपयोग किया जाता है?

इन दोनों असमान कार्यों के लिए एक ही प्रतीक का उपयोग क्यों किया जाता है? इसके बारे में सोचते समय, @ पते के लिए एक बेहतर प्रतीक प्रतीत होता है।

मुझे उम्मीद नहीं है कि यह अभ्यास में बहुत अधिक समस्या का कारण बनता है क्योंकि संकलक शायद सबसे अधिक दोषपूर्ण उपयोग को पकड़ लेगा, लेकिन शायद मैक्रोज़ से जुड़े कोड बनाना संभव होगा जो ऐसा लगता है कि यह बाइनरी कर रहा है और वास्तव में पता कर रहा है

+0

मैंने हमेशा यह सोचा है। पास्कल '@' का उपयोग करता है जो मुझे –

उत्तर

7

कारण @ "का पता" के लिए इस्तेमाल नहीं किया गया था (के रूप में आप एक अच्छा विकल्प हो सकता है का सुझाव दिया) कि उस चरित्र ISO 646 character set, जो वास्तव में सी

के शुरुआती दिनों में वापस इस्तेमाल किया गया था का हिस्सा नहीं था है

हालांकि यह सच है कि सी के डिजाइनर@ का उपयोग कर सकते थे और इसके लिए एक ट्रिगर अनुक्रम तैयार किया गया था, मुझे संदेह है कि उन्हें लगा कि यह वास्तव में परेशानी के लायक नहीं था। तथ्य यह है कि &&& लोगों के कोड में दिखाई दे सकता है शायद एक अलग ऑपरेटर प्रतीक चुनने के लिए पर्याप्त कारण नहीं माना गया था।

+0

सहमत हैं, मनुष्यों के लिए किसी भी अस्पष्टता का एकमात्र कारण लोगों * व्हाट्स स्पेस को छोड़कर और अस्पष्ट भाषा सुविधाओं का उपयोग करके चालाक होने का प्रयास कर रहा है, वास्तव में * चालाक ... – thkala

+0

+1: मुझे उम्मीद है कि कुछ ऐतिहासिक कारण होंगे । एक और सीमित चरित्र सेट बताता है कि एक ही वर्ण का उपयोग कई अर्थों के लिए क्यों किया जाता है। यह पूछताछ करते समय '&&&' था जब मुझे पूछताछ की गई कि '&' में एकाधिक उपयोग क्यों हैं। 'ए और बी' जैसे कुछ और जहां 'ए 'समाप्त होता है' # परिभाषित करें 'द्वारा सेट किया जाता है। यह '' 'जैसा दिखता है लेकिन वास्तव में नहीं है। उम्मीद है कि संकलक गलती को खोज सकता है, लेकिन यह उस पर निर्भर करता है जिस पर आप परिणाम का उपयोग करते हैं। – Leo

7

मुझे नहीं लगता कि इसका कोई बड़ा कारण है कि इसका उपयोग 2 अलग-अलग चीजों के लिए क्यों किया जाता है।

सौभाग्य से, भाषा में कोई अस्पष्टता नहीं है क्योंकि एक उपयोग एक यूनरी ऑपरेटर है और दूसरा एक बाइनरी ऑपरेटर है (यानी दो ऑपरेंड हैं)। * के लिए Ditto (गुणा या dereference)।

+0

+1 के लिए अधिक सहज महसूस करता है, खासकर – Thilo

+0

के लिए यह बिट-वार के लिए भी उपयोग किया जाता है। तो यह एक बाइनरी ऑपरेटर भी हो सकता है। – SidR

+0

^^ बाइनरी द्वारा, और वह थोड़ा सा और समान था। && को तार्किक कहा जाता है और। – anishsane

संबंधित मुद्दे