यहां हम देखेंगे कि हमें सी में सख्त अलियासिंग का उपयोग क्यों करना चाहिए। उस भाग पर चर्चा करने से पहले, आइए एक कोड देखें, और आउटपुट का विश्लेषण करने का प्रयास करें।
उदाहरण
#include<stdio.h> int temp = 5; int* var = &temp; int my_function(double* var) { temp = 1; *var = 5.10; //this will change the value of temp return (temp); } main() { printf("%d", my_function((double*)&temp)); }
आउटपुट
1717986918
यदि हम फ़ंक्शन को my_function कहते हैं, तो यह 1 वापस आ जाएगा। हम इसे my_function((double*)&temp) का उपयोग करके भी कॉल कर सकते हैं। यह 1 लौटाने वाला है, लेकिन यहाँ हम देख सकते हैं कि यह कुछ और लौटा रहा है। यह कोड केवल निरंतर 1 लौटने के लिए बनाया गया था। इस समस्या को ठीक करने के लिए, हम स्ट्रिक्ट एलियासिंग का उपयोग कर सकते हैं।
प्रतिबंधित क्वालीफायर कीवर्ड का प्रयोग करें। यह इंगित करता है कि हम संकलक से वादा कर रहे हैं कि पॉइंटर प्रतिबंधित कीवर्ड के साथ कुछ अलियास नहीं है। अगर हम अपना वादा तोड़ते हैं, तो कुछ समस्याएं होंगी।