কম্পিউটার টিউটোরিয়াল

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 কল করলে এটি ১ রিটার্ন করা উচিত। কিন্তু my_function((double*)&temp) কল করলে অন্য ফলাফল আসে। এটি হয় কারণ double* পয়েন্টার দিয়ে int মেমরি অ্যাক্সেস করা হয়েছে, যা স্ট্রিক্ট এলিয়াসিং রুল লঙ্ঘন করে।

সমাধান: restrict কিওয়ার্ড ব্যবহার করুন। এটি কম্পাইলারকে বোঝায় যে পয়েন্টারটি অন্য কোনো পয়েন্টারের সাথে এলিয়েসড নয়। প্রতিশ্রুতি ভাঙলে অনির্দিষ্ট আচরণ হতে পারে।


  1. RAM অপ্টিমাইজেশন উইন্ডোজে দরকার নেই—কারণ জানুন

  2. উইন্ডোজ ১০ ফ্রি কেন?

  3. HTML required অ্যাট্রিবিউট

  4. উইন্ডোজ ১০-এর সাধারণ চ্যালেঞ্জ ও সমাধান: কেন উইন্ডোজ ১০ খারাপ এবং কীভাবে ঠিক করবেন