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

C-এ attribute((constructor)) এবং attribute((destructor)) সিনট্যাক্স


এখানে আমরা দেখব কীভাবে একটি প্রোগ্রাম লিখতে হয় যেখানে দুটি ফাংশন থাকে — একটা main() ফাংশনের আগে এক্সিকিউট হবে এবং অন্যটি main() ফাংশন শেষ হয়ার পরে। এই ফিচারগুলো প্রোগ্রাম শুরু হওয়ার আগে স্টার্টআপ টাস্ক এবং শেষ হয়ার পর ক্লিন-আপ টাস্ক করার জন্য ব্যবহৃত হয়।

এজন্য ফাংশনগুলোতে অ্যাট্রিবিউট যোগ করতে হয়। Constructor অ্যাট্রিবিউট থাকলে সেটি main()-এর আগে রান হবে, আর Destructor অ্যাট্রিবিউট থাকলে main()-এর পর রান হবে।

এখানে GCC-এর __attribute__() ফাংশন ব্যবহার করা হয়েছে। দুটি অপশন ব্যবহার করা হয়েছে: Constructor এবং Destructor। __attribute__((constructor)) সিনট্যাক্স প্রোগ্রাম শুরু হলে ফাংশন এক্সিকিউট করে, আর __attribute__((destructor)) সিনট্যাক্স main() শেষ হলে ফাংশন এক্সিকিউট করে। নিচে উদাহরণ দেওয়া হলো:

উদাহরণ

#include <stdio.h>
void before_main() __attribute__((constructor));
void after_main() __attribute__((destructor));

void before_main() {
    printf("This is executed before main.\n");
}
void after_main() {
    printf("This is executed after main.");
}
int main() {
    printf("Inside main\n");
    return 0;
}

আউটপুট

This is executed before main.
Inside main
This is executed after main.

  1. জাভাস্ক্রিপ্টে Atomics.and() ফাংশন

  2. অবজেক্ট লিটারেল এবং কনস্ট্রাক্টর ফাংশন দিয়ে তৈরি অবজেক্টের মধ্যে প্রধান পার্থক্য কী?

  3. জাভাস্ক্রিপ্টে ফাংশন এবং মেথড হিসেবে ফাংশন ইনভোক করার পদ্ধতি

  4. জাভাস্ক্রিপ্টে ডিস্ট্রাকচারিং ও ফাংশন প্যারামিটার