सी मध्ये आकार () ऑपरेटर
आकार () ऑपरेटर सामान्यत: सी मध्ये वापरला जातो. तो अभिव्यक्तीचा आकार किंवा चार-आकाराच्या स्टोरेज युनिट्सच्या संख्येमध्ये निर्दिष्ट केलेला डेटा प्रकार निर्धारित करतो. आकार () ऑपरेटरमध्ये एकल ऑपरेंड आहे जो एकतर अभिव्यक्ती किंवा डेटा टायपीकास्ट असू शकतो जेथे कास्ट कंसात कंसात बंद केलेला डेटा प्रकार आहे. डेटा प्रकार केवळ पूर्णांक किंवा फ्लोटिंग डेटा प्रकारांसारखे आदिम डेटा प्रकार असू शकत नाही, परंतु ते युनियन आणि स्ट्रक्चर्स सारख्या पॉईंटर डेटा प्रकार आणि कंपाऊंड डेटा प्रकार देखील असू शकतात.
आकार () ऑपरेटरची आवश्यकता
मुख्यत: प्रोग्राम्सना आदिम डेटा प्रकारांचे स्टोरेज आकार माहित आहे. डेटा प्रकाराचा स्टोरेज आकार स्थिर असला तरी, वेगवेगळ्या प्लॅटफॉर्ममध्ये लागू केल्यावर ते बदलते. उदाहरणार्थ, आम्ही आकार () ऑपरेटरचा वापर करून अॅरे स्पेस गतिकरित्या वाटप करतो:
paunaZ *paiTiAar=smautai_AavaMTna_1(10*Aakar(paunaZ));
वरील उदाहरणात, आम्ही आकार () ऑपरेटर वापरतो, जो आयएनटीच्या कास्टवर लागू केला जातो. आम्ही मेमरीचे वाटप करण्यासाठी मॅलोक () फंक्शन वापरतो आणि पॉईंटर परत करतो जो या वाटप केलेल्या मेमरीकडे निर्देशित करतो. मेमरी स्पेस इंट डेटा प्रकाराने व्यापलेल्या बाइटच्या संख्येइतकी आहे आणि 10 ने गुणाकार केली आहे.
टीप: 32-बिट ऑपरेटिंग सिस्टम सारख्या वेगवेगळ्या मशीनवर आउटपुट भिन्न असू शकते आणि 64-बिट ऑपरेटिंग सिस्टम समान डेटा प्रकारांचे भिन्न आउटपुट दर्शवेल.
आकार () ऑपरेटर ऑपरेंडच्या प्रकारानुसार वेगळ्या प्रकारे वागतो. ऑपरेंड हा एक डेटा प्रकार आहे ऑपरेंड ही एक अभिव्यक्ती आहे
जेव्हा ऑपरेंड हा डेटा प्रकार असतो.
उदाहरण
#vaapara <PsaTidiAayaAae.Pca>
paunaZ mauqya()
{
paunaZ PKsa=89; // cala oaaeSanaa.
laiha("Aakar cyaa D cala x Aahe %paunaZ", Aakar(PKsa)); // pzaDSZaitaRkritaRAahe D Aakar cyaa ?PKsa? cala.
laiha("\Depazma cyaa D paunaZaMk deTa pzakar Aahe %paunaZ",Aakar(paunaZ)); //pzaDSZaitaRkritaRAahe D Aakar cyaa paunaZaMk deTa pzakar.
laiha("\Depazma cyaa D vanaZ deTa pzakar Aahe %paunaZ",Aakar(Axar)); //pzaDSZaitaRkritaRAahe D Aakar cyaa vanaZ deTa pzakar.
laiha("\Depazma cyaa D tarMgata deTa pzakar Aahe %paunaZ",Aakar(ApaunaZ)); //pzaDSZaitaRkritaRAahe D Aakar cyaa tarMgata deTa pzakar.
vaapasakra 0;
}
वरील कोडमध्ये, आम्ही आयएनटी, चार, आकार () ऑपरेटरच्या मदतीने फ्लोट सारख्या भिन्न डेटा प्रकारांचे आकार मुद्रित करीत आहोत.
जेव्हा ऑपरेंड एक अभिव्यक्ती असते
#vaapara <PsaTidiAayaAae.Pca>
paunaZ mauqya()
{
AMk mai=78.0; //cala AarMBa.
ApaunaZ jae=6.78; //cala AarMBa.
laiha("Aakar cyaa (i+j) ABaivyaKtai Aahe : %paunaZ",Aakar(mai+jae)); //pzaDSZaitaRkritaRAahe D Aakar cyaa D ABaivyaKtai (mai+jae).
vaapasakra 0;
}
वरील कोडमध्ये, आम्ही अनुक्रमे डबल अँड फ्लोट प्रकारातील 'आय' आणि 'जे' दोन व्हेरिएबल्स तयार केले आहेत आणि नंतर आम्ही आकार (आय+जे) ऑपरेटर वापरुन अभिव्यक्तीचा आकार मुद्रित करतो.
आउटपुट
Aakar cyaa (mai+jae) ABaivyaKtai Aahe : 8
अॅरे आणि स्ट्रक्चर्स हाताळणी
वरील वापर प्रकरणांव्यतिरिक्त अॅरे आणि स्ट्रक्चर्ससह कार्य करताना आकार () ऑपरेटर अत्यंत उपयुक्त आहे. मेमरीचे संमिश्र ब्लॉक्स अॅरे म्हणून ओळखले जातात आणि त्यांचे आकार समजून घेणे काही कार्यांसाठी महत्त्वपूर्ण आहे.
उदाहरण
#vaapara <PsaTidiAayaAae.Pca>
paunaZ mauqya() {
paunaZ PAar[] = {1, 2, 3, 4, 5};
paunaZ AWrsaaEja = Aakar(PAar) / Aakar(PAar[0]);
laiha("Aakar cyaa D AWre PAar Aahe: %paunaZ\n", Aakar(PAar));
laiha("kzmaaMk cyaa oaTk maoyae PAar Aahe: %paunaZ\n", AWrsaaEja);
vaapasakra 0;
}
आउटपुट
Aakar cyaa D AWre PAar Aahe: 20
kzmaaMk cyaa oaTk maoyae PAar Aahe: 5
आकार (एआरआर) अॅरेचा एकूण आकार बाइटमध्ये परत करते, तर आकार (एआरआर [0]) अॅरेच्या सर्वात लहान घटकाचा आकार परत करते. अॅरेमधील आयटमची संख्या एका घटकाच्या आकारानुसार एकूण आकाराचे विभाजन करून (अॅरसाइझ) निश्चित केली जाते. या तंत्राचा वापर करून, अॅरे आकार बदलण्याच्या तोंडावर कोड लवचिक राहील. त्याचप्रमाणे, आपण रचनांचा आकार शोधण्यासाठी आकार () ऑपरेटर वापरू शकता:
या उदाहरणात, आकारात अंक पूर्णांक अॅरेमध्ये एक स्मृती असते जी गतिशीलपणे वाटप केली जाते. NUMELमेंट्स * आकार (इंट) बाइट्स वाटप केलेल्या मेमरीच्या एकूण प्रमाणात प्रतिनिधित्व करतात. असे केल्याने, अॅरेला इच्छित प्रमाणात पूर्णांक सामावून घेण्यासाठी पुरेशी जागा मिळण्याची हमी दिली जाते.
युनियनसाठी आकार ()
युनियन आणि आकार () ऑपरेटर सुसंगत आहेत. युनियन स्ट्रक्चर्सशी तुलना करण्यायोग्य आहेत, वगळता केवळ एक सदस्य एकाच वेळी सक्रिय असू शकतो आणि त्याचे सर्व सदस्य मेमरी सामायिक करतात.
#vaapara <PsaTidiAayaAae.Pca>
yaunaiyana deTa {
paunaZ mai;
ApaunaZ Ppaf;
Axar ejata[20];
};
paunaZ mauqya() {
yaunaiyana deTa deTa;
laiha("Aakar cyaa D yaunaiyana deTa Aahe: %paunaZ baaET\n", Aakar(deTa));
vaapasakra 0;
}
आउटपुट
Aakar cyaa D yaunaiyana deTa Aahe: 20 baaET
मेमरी व्यवस्थापन, पोर्टेबिलिटी आणि प्रभावी डेटा हाताळणीसाठी ते आवश्यक असल्याने आकार () ऑपरेटर अत्यंत महत्वाचे आहे. खाली दिलेल्या सूचीमध्ये सूचीबद्ध कारणास्तव सी मध्ये आकार () ऑपरेटर महत्त्वपूर्ण आहे: मेमरी ation लोकेशन: अॅरे आणि डायनॅमिक मेमरी ation लोकेशनसह कार्य करताना, आकार () ऑपरेटर वारंवार मेमरी वाटपामध्ये वापरला जातो. अॅरे किंवा स्ट्रक्चर्ससाठी मेमरी वाटप करताना डेटा प्रकारांचे आकार जाणून घेणे हमी देते की मेमरीची योग्य मात्रा आरक्षित आहे, मेमरी ओव्हरफ्लो कमी करते आणि मेमरी वापर सुधारते. पोर्टेबिलिटीः सी एक लोकप्रिय प्रोग्रामिंग भाषा असल्याने कोड वारंवार भिन्न आर्किटेक्चर आणि डेटा प्रकार आकार असलेल्या अनेक सिस्टमवर ऑपरेट करावा लागतो. हे कंपाईल-टाइममध्ये डेटा प्रकारांचे आकार निर्दिष्ट करते म्हणून, आकार () ऑपरेटर विविध प्लॅटफॉर्मवर स्वयंचलितपणे परिस्थितीशी जुळवून घेण्यासाठी प्रोग्राम सक्षम करून पोर्टेबल कोड डिझाइन करण्यात मदत करते. पॉईंटर अंकगणित: पॉईंटर्सशी व्यवहार करताना, आकार () ऑपरेटर मेमरी ऑफसेट शोधण्यात मदत करते, डेटा स्ट्रक्चर्स, अॅरे आणि इतर मेमरी प्रदेशांमध्ये अचूक हालचाल करण्यास परवानगी देते. अॅरे किंवा गतिकरित्या वाटप केलेल्या मेमरीमध्ये पुनरावृत्ती करताना हे अत्यंत उपयुक्त आहे. बायनरी डेटा हाताळणे: आकार () ऑपरेटर हमी देतो की बायनरी डेटा किंवा फायलींसह कार्य करताना डेटा योग्य प्रमाणात वाचला किंवा लिहिला जातो, चुकीच्या डेटा आकाराच्या गृहितकांद्वारे आणलेल्या चुका दूर करतात. युनियन आणि स्ट्रक्चर्स: स्ट्रक्चर्स आणि युनियन व्यवस्थापित करताना आकार () ऑपरेटर आवश्यक आहे, विशेषत: जटिल डेटा स्ट्रक्चर्स तयार करण्यासाठी त्यांचा उपयोग करताना. जेव्हा आपल्याला स्ट्रक्चर्स आणि युनियनच्या आकाराबद्दल माहिती असेल तेव्हा मेमरी वाटप आणि प्रवेश प्रभावी आणि त्रुटीमुक्त बनतात. सेफ बफर मॅनेजमेंटः आकार () ऑपरेटर कॅरेक्टर अॅरे (स्ट्रिंग्स) वर काम करताना डेटा प्रक्रिया करण्यासाठी बफर पुरेसा मोठा आहे हे सुनिश्चित करण्यात मदत करते, बफर ओव्हरफ्लो आणि संभाव्य सुरक्षा त्रुटी प्रतिबंधित करते. डेटा सीरियलायझेशन आणि डीसेरियलायझेशन: आकार () ऑपरेटर हमी देतो की डेटा हस्तांतरण किंवा स्टोरेजमध्ये डेटा अखंडता राखून ठेवली जाते, ज्या परिस्थितीत डेटा अनुक्रमित करणे आवश्यक आहे (बाइट स्ट्रीममध्ये रूपांतरित) किंवा निर्जन (बीआयईटी प्रवाहातून पुनर्प्राप्त). कोड सुधारणा: विविध डेटा स्वरूपाचा आकार जाणून घेणे कधीकधी कोड ऑप्टिमायझेशनमध्ये मदत करू शकते. उदाहरणार्थ, हे कंपाईलरला डेटा स्ट्रक्चर्स अधिक प्रभावीपणे संरेखित करण्यास, मेमरी कचरा कमी करण्यास आणि कॅशे कार्यक्षमता वाढविण्यास सक्षम करते.
सी मध्ये आकार () ऑपरेटरची आवश्यकता
मेमरी मॅनेजमेंट आणि डेटा प्रोसेसिंगच्या वेगवेगळ्या घटकांच्या आवश्यकतेमुळे सी प्रोग्रामिंगमधील आकार () ऑपरेटर एक मुख्य घटक आहे. प्रभावीपणे मेमरीचे वाटप करण्यासाठी डेटा प्रकाराचे आकार समजून घेणे आवश्यक आहे, विशेषत: अॅरे आणि डायनॅमिक मेमरी ation लोकेशनसह कार्य करताना. मेमरीची योग्य रक्कम आरक्षित आहे हे सुनिश्चित करून, ही माहिती मेमरी ओव्हरफ्लो टाळण्यास आणि मेमरी वापरास अनुकूल करण्यास मदत करते. पोर्टेबल कोड तयार करण्यासाठी आकार () ऑपरेटर देखील आवश्यक आहे, जे भिन्न आर्किटेक्चर आणि डेटा प्रकार आकार असलेल्या अनेक सिस्टमवर त्रुटीशिवाय कार्य करू शकते. कंपाईल-टाइममध्ये डेटा प्रकारांचा आकार पुरवतो म्हणून मॅन्युअल सुधारणांच्या आवश्यकतेशिवाय प्रोग्राम बर्याच प्लॅटफॉर्मशी जुळवून घेऊ शकतो. याव्यतिरिक्त, आकार () ऑपरेटर पॉईंटर्ससह काम करताना डेटा स्ट्रक्चर्स आणि अॅरेच्या आसपास तंतोतंत नेव्हिगेट करणे शक्य करते, सुरक्षित आणि प्रभावी पॉईंटर अंकगणित सुलभ करते. आकार () ऑपरेटरसाठी आणखी एक अनुप्रयोग म्हणजे युनियन आणि स्ट्रक्चर्स हाताळणे. हे चुका आणि अकार्यक्षमतेस प्रतिबंधित, गुंतागुंतीच्या डेटा स्ट्रक्चर्समध्ये तंतोतंत मेमरी वाटप आणि प्रवेश सुनिश्चित करते. आकार () ऑपरेटर एक मूलभूत साधन आहे जे सी प्रोग्रामरला कार्यक्षमता आणि डेटा अखंडतेचे अनुकूलन करताना प्रभावी, पोर्टेबल आणि लचक कोड विकसित करण्यास सक्षम करते. हे सुरक्षित बफर व्यवस्थापन सुनिश्चित करते आणि डेटा सीरियलायझेशन आणि डीसेरियलायझेशन सुलभ करते.
निष्कर्ष:
सारांश, डेटा प्रकार, अभिव्यक्ती, अॅरे, स्ट्रक्चर्स, युनियन आणि बरेच काही यासह अनेक प्रकारच्या वस्तूंच्या आकाराची गणना करण्यासाठी सी आकार () ऑपरेटर एक उपयुक्त साधन आहे. हे कंपाईल-टाइममध्ये डेटा प्रकारांचे आकार देते, एकाधिक प्लॅटफॉर्म आणि सेटिंग्जमध्ये कॅटरिंग, हे प्रोग्रामरला पोर्टेबल आणि लवचिक कोड तयार करण्यास सक्षम करते. विकसक विविध डेटा प्रकारांच्या स्टोरेज गरजा जागरूक राहून त्यांच्या प्रोग्राममध्ये मेमरी वाटप, पॉईंटर अंकगणित आणि डायनॅमिक मेमरी वाटप प्रभावीपणे हाताळू शकतात. अॅरे आणि स्ट्रक्चर्ससह कार्य करताना, आकार () ऑपरेटर खूप उपयुक्त आहे कारण ते योग्य मेमरी वाटप सुनिश्चित करते आणि घटक पुनर्प्राप्त करणे सोपे करते. याव्यतिरिक्त, हे पॉईंटर अंकगणित सुलभ करते, ज्यामुळे मेमरी प्रदेशांमध्ये जाणे सोपे होते. तथापि, ऑपरेटरच्या अग्रक्रमांमुळे, आकार () ऑपरेटरसह जटिल अभिव्यक्तींचा वापर करताना प्रोग्रामर सावध असले पाहिजेत. एकंदरीत, आकार () ऑपरेटर शिकणे सी प्रोग्रामरला कार्यक्षम, विश्वासार्ह आणि प्लॅटफॉर्म-स्वतंत्र कोड लिहिण्यास सक्षम करून स्थिर आणि जुळवून घेण्यायोग्य सॉफ्टवेअर सोल्यूशन्स तयार करण्यासाठी सी प्रोग्रामर सुसज्ज करते.