কম্পিউটার

সি-তে স্বাস্থ্যকর ম্যাক্রো


এখানে আমরা C-তে হাইজেনিক ম্যাক্রো দেখতে পাব। আমরা C-তে ম্যাক্রোর ব্যবহার জানি। কিন্তু কখনও কখনও, শনাক্তকারীর আকস্মিক ক্যাপচারের কারণে এটি পছন্দসই ফলাফল দেয় না।

আমরা যদি নিম্নলিখিত কোডটি দেখি, আমরা দেখতে পাব যে এটি সঠিকভাবে কাজ করছে না৷

উদাহরণ

#include<stdio.h>
#define INCREMENT(i) do { int a = 0; ++i; } while(0)
main(void) {
   int a = 10, b = 20;
   //Call the macros two times for a and b
   INCREMENT(a);
   INCREMENT(b);
   printf("a = %d, b = %d\n", a, b);
}

প্রিপ্রসেস করার পর কোডটি এরকম হবে −

উদাহরণ

#include<stdio.h>
#define INCREMENT(i) do { int a = 0; ++i; } while(0)
main(void) {
   int a = 10, b = 20;
   //Call the macros two times for a and b
   do { int a = 0; ++a; } while(0) ;
   do { int a = 0; ++b; } while(0) ;
   printf("a = %d, b = %d\n", a, b);
}

আউটপুট

a = 10, b = 21

এখানে আমরা দেখতে পারি a এর জন্য মান আপডেট করা হয়নি। তাই এক্ষেত্রে আমরা হাইজেনিক ম্যাক্রো ব্যবহার করব। এই হাইজেনিক ম্যাক্রোগুলি হল ম্যাক্রো যার সম্প্রসারণ গ্যারান্টি দেয় যে এটি সনাক্তকারীর দুর্ঘটনাজনিত ক্যাপচার তৈরি করে না। এখানে আমরা কোনো পরিবর্তনশীল নাম ব্যবহার করব না যা সম্প্রসারণের অধীনে কোডের সাথে ইন্টারফেস করার ঝুঁকি নিতে পারে। এখানে ম্যাক্রোর ভিতরে আরেকটি ভেরিয়েবল 't' ব্যবহার করা হয়েছে। এটি প্রোগ্রামে ব্যবহৃত হয় না৷

উদাহরণ

#include<stdio.h>
#define INCREMENT(i) do { int t = 0; ++i; } while(0)
main(void) {
   int a = 10, b = 20;
   //Call the macros two times for a and b
   INCREMENT(a);
   INCREMENT(b);
   printf("a = %d, b = %d\n", a, b);
}

আউটপুট

a = 11, b = 21

  1. কিভাবে এক্সেলে একটি VBA ম্যাক্রো বা স্ক্রিপ্ট তৈরি করবেন

  2. মাইক্রোসফ্ট এক্সেলে কীভাবে ম্যাক্রো তৈরি এবং চালানো যায়

  3. গ্রুপ নীতি ব্যবহার করে মাইক্রোসফ্ট অফিসে চলমান থেকে ম্যাক্রোগুলিকে প্রতিরোধ এবং ব্লক করুন

  4. কিভাবে Windows 10 এ কীবোর্ড ম্যাক্রো তৈরি করবেন