টাইপ কোয়ালিফায়ার সি প্রোগ্রামিং ভাষায় বিদ্যমান ডেটা টাইপে বিশেষ অ্যাট্রিবিউট যোগ করে।
Volatile
volatile টাইপ কোয়ালিফায়ার কম্পাইলারকে বলে যে ভেরিয়েবলটি শেয়ার্ড। অর্থাৎ, অন্য প্রোগ্রাম বা এন্টিটি দ্বারা রেফারেন্স এবং পরিবর্তন করা যেতে পারে।
উদাহরণ: volatile int x;
Restrict
শুধু পয়েন্টারের সাথে ব্যবহার করা হয়। নির্দেশ করে যে পয়েন্টারটি ডিরেফারেন্সড ডেটা অ্যাক্সেস করার একমাত্র প্রাথমিক পথ। কম্পাইলারের অপ্টিমাইজেশনে সাহায্য করে।
উদাহরণ: volatile
int *ptr; int a = 0; ptr = &a; *ptr += 4; // *ptr += 9 দিয়ে রিপ্লেস করা যাবে না *ptr += 5;
এখানে কম্পাইলার দুটি স্টেটমেন্টকে একে (*ptr+=9) রিপ্লেস করতে পারবে না, কারণ 'a' ভেরিয়েবলটি সরাসরি অথবা অন্য পয়েন্টার দিয়ে অ্যাক্সেস করা যেতে পারে।
উদাহরণ: restrict
restrict int *ptr; int a = 0; ptr = &a; *ptr += 4; // *ptr += 9 দিয়ে রিপ্লেস করা যাবে *ptr += 5;
এখানে কম্পাইলার নিশ্চিত যে ভেরিয়েবলটি অন্য কোনো রিসোর্স থেকে অ্যাক্সেস করা যাবে না, তাই অপ্টিমাইজ করতে পারে।
প্রোগ্রাম: restrict কীওয়ার্ড ব্যবহার
#include<stdio.h>
void keyword(int* a, int* b, int* restrict c) {
*a += *c;
*b += *c;
}
int main(void) {
int p = 10, q = 20, r = 30;
keyword(&p, &q, &r);
printf("%d %d %d", p, q, r);
return 0;
}