C-তে কাঠামো এবং ইউনিয়নের মধ্যে পার্থক্য

সুচিপত্র:

C-তে কাঠামো এবং ইউনিয়নের মধ্যে পার্থক্য
C-তে কাঠামো এবং ইউনিয়নের মধ্যে পার্থক্য

ভিডিও: C-তে কাঠামো এবং ইউনিয়নের মধ্যে পার্থক্য

ভিডিও: C-তে কাঠামো এবং ইউনিয়নের মধ্যে পার্থক্য
ভিডিও: থানা ও উপজেলার মধ্যে পার্থক্য কী ।।জানা-অজানা পর্ব ৫৯।। 2024, জুলাই
Anonim

মূল পার্থক্য – C এ কাঠামো বনাম ইউনিয়ন

একটি অ্যারে হল একটি ডেটা কাঠামো যা সি ভাষা দ্বারা সমর্থিত। একটি অ্যারে একই ধরনের ডেটা উপাদান সংরক্ষণ করতে ব্যবহার করা যেতে পারে। যদি int মার্কস [10] হিসাবে একটি বিবৃতি থাকে; তারপর চিহ্ন হল একটি অ্যারে যা দশটি চিহ্ন সংরক্ষণ করতে পারে এবং তাদের সবগুলোই পূর্ণসংখ্যা। কখনও কখনও এটি একই মেমরি অবস্থানে বিভিন্ন ধরনের ডেটা উপাদান সংরক্ষণের প্রয়োজন হয়। উদাহরণস্বরূপ, একজন কর্মচারীর একটি কর্মচারী আইডি, নাম, বিভাগ, বয়স ইত্যাদি থাকতে পারে। সেগুলি বিভিন্ন ডেটা প্রকারের। অতএব, একটি একক হিসাবে বিভিন্ন ডেটা উপাদান সংরক্ষণ করার একটি পদ্ধতি থাকা প্রয়োজন। C-তে স্ট্রাকচার এবং ইউনিয়নগুলি একই মেমরি অবস্থানে বিভিন্ন ধরণের ডেটা উপাদান সংরক্ষণের জন্য ব্যবহৃত হয়।একটি কাঠামো এবং একটি ইউনিয়ন একই রকম তবে তারা প্রধানত মেমরি বরাদ্দের কারণে পার্থক্য করে। একটি স্ট্রাকচার ভেরিয়েবল সঞ্চয় করার জন্য প্রয়োজনীয় মেমরি হল সমস্ত সদস্যের মেমরি আকারের সমষ্টি। একটি ইউনিয়ন ভেরিয়েবল সংরক্ষণ করার জন্য প্রয়োজনীয় মেমরিটি ইউনিয়নের বৃহত্তম উপাদানটির জন্য প্রয়োজনীয় মেমরি। এটি সি-তে কাঠামো এবং ইউনিয়নের মধ্যে মূল পার্থক্য। এই নিবন্ধটি সি-তে কাঠামো এবং ইউনিয়নের মধ্যে পার্থক্য নিয়ে আলোচনা করে।

C-তে গঠন কী?

A স্ট্রাকচার হল C-তে ব্যবহারকারী-সংজ্ঞায়িত ডেটা টাইপ। এটি বিভিন্ন ধরনের ডেটা আইটেম একত্রিত করতে সাহায্য করে। একটি কাঠামো রেকর্ড প্রতিনিধিত্ব করতে পারে. একজন শিক্ষার্থীর student_id, student_name ইত্যাদি থাকতে পারে। প্রতিটি ভেরিয়েবলকে আলাদাভাবে সংরক্ষণ করার পরিবর্তে, এই সমস্ত বিভিন্ন ডেটা আইটেম একটি কাঠামো ব্যবহার করে একক ইউনিটে কম্প্যাক্ট করা যেতে পারে। এটি কীওয়ার্ড 'struct' ব্যবহার করে সংজ্ঞায়িত করা হয়েছে। একটি কাঠামোতে, এর সমস্ত সদস্য যেকোন সময় অ্যাক্সেস করা যেতে পারে৷ নিম্নলিখিতটি একটি প্রাপ্ত ডেটা টাইপ স্টুডেন্ট তৈরি করে৷

গঠন ছাত্র {

শিক্ষার্থী_আইডি;

চার ছাত্রের_নাম[20];

};

উপরের কাঠামোর জন্য, ভেরিয়েবলগুলি নিম্নরূপ ঘোষণা করা যেতে পারে।

struct Student student1, student2, student3;

কাঠামোর সদস্যদের অ্যাক্সেস করার দুটি পদ্ধতি রয়েছে। এটি সদস্য অপারেটর (.) এবং কাঠামো পয়েন্টার অপারেটর (->) ব্যবহার করে। গঠন_পরিবর্তনশীল_নাম ব্যবহার করে সদস্যদের অ্যাক্সেস করা যেতে পারে। সদস্যের নাম. প্রোগ্রামার যদি স্টুডেন্ট 2 এর নাম অ্যাক্সেস করতে চায়, তাহলে সে বিবৃতিটি লিখতে পারে printf(student2.student_namename);

একটি কাঠামো সহ নীচের প্রোগ্রামটি পড়ুন।

সি-তে কাঠামো এবং ইউনিয়নের মধ্যে পার্থক্য
সি-তে কাঠামো এবং ইউনিয়নের মধ্যে পার্থক্য

চিত্র 01: কাঠামো সহ সি প্রোগ্রাম

উপরের প্রোগ্রাম অনুসারে, ছাত্র একটি কাঠামো।এতে student_id এবং student_name রয়েছে। প্রধান প্রোগ্রামে গঠন প্রকারের দুটি ভেরিয়েবল ঘোষণা করা হয়। তাদের বলা হয় student1 এবং student2। Student1 এর id মান 1 দিয়ে বরাদ্দ করা হয়েছে সদস্য অপারেটরকে student1.student_id=1 হিসাবে ব্যবহার করে। নাম "An" একটি স্ট্রিং. অতএব, স্ট্রিং কপি ফাংশন strcpy ব্যবহার করে এটি student_name সদস্যের কাছে কপি করা হয়। আইডি এবং নাম একইভাবে student2 কে বরাদ্দ করা হয়েছে। অবশেষে, সেই মানগুলি সদস্য অপারেটর ব্যবহার করে প্রিন্ট করা হয়।

একটি স্ট্রাকচার ভেরিয়েবল সঞ্চয় করার জন্য যে পরিমাণ মেমরির প্রয়োজন তা হল সমস্ত সদস্যের মেমরির আকারের সমষ্টি। Student_id-এ 4 বাইট এবং student_name 20 বাইট (একটি অক্ষরের জন্য প্রতিটি বাইট) রয়েছে। মোট 24 বাইট হল কাঠামোর জন্য প্রয়োজনীয় মেমরি আকারের সমষ্টি।

C-তে ইউনিয়ন কি?

A ইউনিয়ন হল C-তে ব্যবহারকারী-সংজ্ঞায়িত ডেটা টাইপ। এটি একই মেমরি অবস্থানে বিভিন্ন ধরনের ডেটা সংরক্ষণ করতে সাহায্য করে। একটি বইয়ের বৈশিষ্ট্য থাকতে পারে যেমন book_name, মূল্য ইত্যাদি। তাদের প্রতিটির জন্য ভেরিয়েবল তৈরি করার পরিবর্তে, একটি ইউনিয়ন ব্যবহার করে সমস্ত বিভিন্ন ডেটা প্রকারকে একটি ইউনিটে কম্প্যাক্ট করতে ব্যবহার করা যেতে পারে।এটি 'ইউনিয়ন' কীওয়ার্ড ব্যবহার করে সংজ্ঞায়িত করা হয়েছে। নিম্নলিখিতটি একটি প্রাপ্ত ডেটা ইউনিয়ন বই তৈরি করে।

ইউনিয়ন বই{

চারের নাম[20];

ডবল দাম;

};

উপরের ইউনিয়নের জন্য, ভেরিয়েবলগুলি নিম্নরূপ ঘোষণা করা যেতে পারে।

ইউনিয়ন বুক বুক ১, বই ২;

ইউনিয়নের সদস্যদের অ্যাক্সেস করার দুটি পদ্ধতি রয়েছে। এটি সদস্য অপারেটর (.) এবং কাঠামো পয়েন্টার অপারেটর (->) ব্যবহার করে। সদস্যদের union_variable_name ব্যবহার করে অ্যাক্সেস করা যেতে পারে। সদস্যের নাম. প্রোগ্রামার যদি book1 এর নাম অ্যাক্সেস করতে চায়, তাহলে সে বিবৃতিটি printf(book1.name); হিসেবে লিখতে পারে।

একটি ইউনিয়নের সাথে নীচের প্রোগ্রামটি পড়ুন।

C_Figure 02-এ গঠন ও ইউনিয়নের মধ্যে পার্থক্য
C_Figure 02-এ গঠন ও ইউনিয়নের মধ্যে পার্থক্য

চিত্র 02: ইউনিয়ন ব্যবহার করে সি প্রোগ্রাম

উপরের প্রোগ্রাম অনুসারে, বইটি একটি ইউনিয়ন। বই 1 হল টাইপ ইউনিয়নের একটি পরিবর্তনশীল। নাম এবং মূল্য নির্ধারিত মান। ইউনিয়নে, এর সদস্যদের মধ্যে শুধুমাত্র একজনকে একবারে অ্যাক্সেস করা যেতে পারে এবং অন্য সমস্ত সদস্যদের আবর্জনার মান থাকবে। আইডির মান সঠিকভাবে প্রিন্ট হয় না কিন্তু মূল্য মান সঠিকভাবে প্রিন্ট করে।

C-তে গঠন ও ইউনিয়নের মধ্যে মূল পার্থক্য
C-তে গঠন ও ইউনিয়নের মধ্যে মূল পার্থক্য

চিত্র 03: ইউনিয়নের সাথে পরিবর্তিত সি প্রোগ্রাম

উপরের প্রোগ্রাম অনুসারে, বই একটি ইউনিয়ন। book1 এবং book2 হল ইউনিয়ন টাইপ ভেরিয়েবল। প্রথমে, book1 নামের মান নির্ধারণ করা হয় এবং এটি প্রিন্ট করা হয়। তারপর book2 নামের মান নির্ধারণ করা হয় এবং এটি মুদ্রিত হয়। সমস্ত সদস্য সঠিকভাবে মুদ্রণ করে কারণ এক সময়ে একজন সদস্য ব্যবহার করা হচ্ছে। একটি ইউনিয়ন সংরক্ষণ করার জন্য প্রয়োজনীয় মেমরিটি ইউনিয়নের বৃহত্তম উপাদানটির জন্য প্রয়োজনীয় মেমরি।উপরের প্রোগ্রামে, নামের ভেরিয়েবলটি 20 বাইট। এটি দামের চেয়ে বড়। সুতরাং, ইউনিয়নের জন্য মেমরি বরাদ্দ হল 20 বাইট৷

C-তে কাঠামো এবং ইউনিয়নের মধ্যে মিল কী?

  • C-তে স্ট্রাকচার এবং ইউনিয়ন উভয়ই ব্যবহারকারী-সংজ্ঞায়িত ডেটা প্রকার।
  • C-তে স্ট্রাকচার এবং ইউনিয়ন উভয়ই একই মেমরি লোকেশনে বিভিন্ন ধরনের ডেটা সংরক্ষণ করতে ব্যবহার করা যেতে পারে।

C তে গঠন এবং ইউনিয়নের মধ্যে পার্থক্য কী?

C কাঠামো বনাম ইউনিয়ন

স্ট্রাকচার হল সি ভাষায় একটি ব্যবহারকারী-সংজ্ঞায়িত ডেটাটাইপ যা বিভিন্ন ধরণের ডেটা একত্রিত করার অনুমতি দেয়৷ ইউনিয়ন হল সি ভাষায় একটি ব্যবহারকারী-সংজ্ঞায়িত ডেটাটাইপ যা বিভিন্ন ধরণের ডেটা একত্রিত করার অনুমতি দেয়৷
অ্যাক্সেসযোগ্যতা
একটি কাঠামোতে, এর সমস্ত সদস্য যে কোনও সময় অ্যাক্সেস করা যেতে পারে। একটি ইউনিয়নে, তার সদস্যদের মধ্যে একজনকে একবারে অ্যাক্সেস করা যেতে পারে এবং অন্য সমস্ত সদস্যদের আবর্জনার মান থাকবে।
মেমরি বরাদ্দ
একটি স্ট্রাকচার ভেরিয়েবল সঞ্চয় করার জন্য যে মেমরির প্রয়োজন তা হল সমস্ত সদস্যের মেমরির আকারের সমষ্টি। ইউনিয়ন ভেরিয়েবল সঞ্চয় করার জন্য যে মেমরির প্রয়োজন তা হল ইউনিয়নের সবচেয়ে বড় উপাদানের জন্য প্রয়োজনীয় মেমরি।
কীওয়ার্ড
একটি কাঠামোকে সংজ্ঞায়িত করতে ব্যবহৃত কীওয়ার্ডটি হল 'struct'৷ ইউনিয়নকে সংজ্ঞায়িত করতে ব্যবহৃত কীওয়ার্ডটি হল ‘ইউনিয়ন’।

সারাংশ – C এ কাঠামো বনাম ইউনিয়ন

একটি অ্যারে একই ধরণের ডেটা উপাদান সংরক্ষণ করতে ব্যবহৃত হয়।কখনও কখনও একই মেমরি অবস্থানে বিভিন্ন ধরনের ডেটা উপাদান সংরক্ষণ করা প্রয়োজন। সি প্রোগ্রামিং ভাষা এই কাজটি সম্পন্ন করার জন্য কাঠামো এবং ইউনিয়ন প্রদান করে। উভয়ই ব্যবহারকারী-সংজ্ঞায়িত ডেটা প্রকার। একটি স্ট্রাকচার ভেরিয়েবল সঞ্চয় করার জন্য প্রয়োজনীয় মেমরি হল সমস্ত সদস্যের মেমরির আকারের সমষ্টি। একটি ইউনিয়ন ভেরিয়েবল সঞ্চয় করার জন্য প্রয়োজনীয় মেমরিটি ইউনিয়নের বৃহত্তম উপাদানটির জন্য প্রয়োজনীয় মেমরি। এটি সি-তে গঠন এবং ইউনিয়নের মধ্যে পার্থক্য।

প্রস্তাবিত: