Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C में सख्त उपनाम (Strict Aliasing) की आवश्यकता क्यों है?

यहां हम देखेंगे कि C में सख्त उपनाम का उपयोग क्यों करना चाहिए। उस भाग पर चर्चा करने से पहले, आइए एक कोड देखें और आउटपुट का विश्लेषण करने का प्रयास करें।

उदाहरण

#include <stdio.h>
int temp = 5;
int *var = &temp;
int my_function(double *var) {
    temp = 1;
    *var = 5.10; // यह temp का मान बदल देगा
    return (temp);
}
int main() {
    printf("%d", my_function((double*)&temp));
}

आउटपुट

1717986918

यदि हम फ़ंक्शन my_function को कॉल करते हैं, तो यह 1 लौटाएगा। हम इसे my_function((double*)&temp) का उपयोग करके भी कॉल कर सकते हैं। यह 1 लौटाने वाला है, लेकिन यहां हम देख सकते हैं कि यह कुछ और लौटा रहा है। यह कोड केवल स्थिर 1 लौटाने के लिए बनाया गया था। इस समस्या को ठीक करने के लिए हम सख्त उपनाम (Strict Aliasing) का उपयोग कर सकते हैं।

restrict क्वालिफायर कीवर्ड का उपयोग करें। यह इंगित करता है कि हम कंपाइलर से वादा कर रहे हैं कि कुछ पॉइंटर restrict कीवर्ड के साथ उपनामित नहीं है। यदि हम अपना वादा तोड़ते हैं तो समस्याएं होंगी।

  1. विंडोज़ 10 मुफ़्त क्यों है? विंडोज़ 10 मुफ़्त क्यों है?

    जनवरी 2015 के अंत में, माइक्रोसॉफ्ट के सिस्टम प्रमुख ने एक घोषणा में कहा कि विंडोज़ 10 उन लोगों के लिए मुफ्त अपग्रेड के रूप में आएगा जो विंडोज़ 7 और विंडोज़ 8.1 का उपयोग कर रहे हैं। यह कई लोगों के लिए आश्चर्य की बात थी, विशेष रूप से उन लोगों के लिए जो हर बार माइक्रोसॉफ्ट द्वारा एक नया संस्करण जारी क

  1. HTML required एट्रिब्यूट HTML required एट्रिब्यूट

    परिचय HTML required एट्रिब्यूट यह निर्दिष्ट करता है कि फॉर्म सबमिट करने से पहले HTML एलिमेंट को भरना अनिवार्य है। इसे <input>, <select>, और <textarea> HTML एलिमेंट्स पर लागू किया जा सकता है। सिंटैक्स <tagname required></tagname> उदाहरण <!DOCTYPE html> <html&g

  1. विंडोज 10 की सामान्य चुनौतियों की खोज और उन्हें कैसे हल करें विंडोज 10 की सामान्य चुनौतियों की खोज और उन्हें कैसे हल करें

    विंडोज 10 ऑपरेटिंग सिस्टम विश्व-प्रसिद्ध हैं, और उनके नियमित अपडेट उन्हें अद्वितीय और भरोसेमंद बनाते हैं। सभी ऐप्स और विजेट्स सही नहीं हैं लेकिन फिर भी काफी उपयोगी हैं। हालांकि, उनकी सेटिंग्स और सुविधाएं बेहतर हो सकती हैं। हालांकि माइक्रोसॉफ्ट के पास दुनिया भर में लगभग 1.3 बिलियन विंडोज 10 उपयोगकर्त