এখানে আমরা দেখব সি-এ restrict কীওয়ার্ড কী। restrict কীওয়ার্ড প্রথমে C99 সংস্করণে আনা হয়েছিল।
restrictকীওয়ার্ড পয়েন্টার ডিক্লেরেশনে টাইপ কোয়ান্টিফায়ার হিসেবে ব্যবহৃত হয়।এই কীওয়ার্ড কোনো নতুন ফাংশনালিটি যোগ করে না। এর মাধ্যমে প্রোগ্রামার কম্পাইলারকে একটি অপ্টিমাইজেশন সম্পর্কে জানাতে পারেন।
যখন
restrictকীওয়ার্ড একটি পয়েন্টারp-এর সাথে ব্যবহার করা হয়, তবে এটি কম্পাইলারকে বলে যে,pহলো এই অবজেক্টটি অ্যাক্সেস করার একমাত্র উপায়। তাই কম্পাইলার কোনো অতিরিক্ত চেক যোগ করবে না।যদি প্রোগ্রামার
restrictব্যবহার করে উপরের শর্ত লঙ্ঘন করে, তবে অনির্দিষ্ট আচরণ (undefined behavior) ঘটবে।
উদাহরণ
#include <stdio.h>
void my_function(int* x, int* y, int* restrict z) {
*x += *z;
*y += *z;
}
int main(void) {
int x = 10, y = 20, z = 30;
my_function(&x, &y, &z);
printf("%d %d %d", x, y, z);
}
আউটপুট
40 50 30