সি-তে ঘোষণা এবং সংজ্ঞার মধ্যে মূল পার্থক্য হল যে সি-তে ঘোষণা কম্পাইলারকে ফাংশনের নাম, রিটার্নের ধরন এবং পরামিতি সম্পর্কে বলে যখন সি-তে সংজ্ঞাটি ফাংশনের প্রকৃত বাস্তবায়ন ধারণ করে। অর্থাৎ, ঘোষণা কম্পাইলারকে ফাংশন সম্পর্কে তথ্য প্রদান করে যেখানে, সংজ্ঞা একটি নির্দিষ্ট কাজ সম্পাদনের জন্য ফাংশনের প্রকৃত বিবৃতি ধারণ করে।
C একটি সাধারণ উদ্দেশ্য, কাঠামোবদ্ধ প্রোগ্রামিং ভাষা। এটি নিয়ন্ত্রণ কাঠামো ব্যবহার করে যেমন if/else, পুনরাবৃত্তি যেমন লুপের জন্য, যখন লুপ এবং ফাংশন। একটি ফাংশন হল বিবৃতির একটি সেট যা একটি নির্দিষ্ট কাজ বারবার করতে সাহায্য করে।উপরন্তু, প্রধান ফাংশন থেকে ফাংশন কল করা সম্ভব। ফাংশনের শেষ বিবৃতিটি কার্যকর করার পরে, নিয়ন্ত্রণটি মূল ফাংশনে ফিরে যায়। এই নিবন্ধটি C-তে ফাংশনের ঘোষণা এবং সংজ্ঞা নিয়ে আলোচনা করে এবং তাদের মধ্যে পার্থক্য তুলনা করে। ফাংশনের সংজ্ঞা ফাংশনটি কী করে তা নির্দিষ্ট করে এবং ঘোষণা ফাংশনে কী যায় তা নির্দিষ্ট করে; এটি একটি প্রোটোটাইপ।
সি-তে ঘোষণা কী?
ঘোষণা কম্পাইলারকে ফাংশন সম্পর্কে তথ্য প্রদান করে। ঘোষণার সিনট্যাক্স নিম্নরূপ।
রিটার্ন_টাইপ ফাংশন_নাম (প্যারামিটার তালিকা);
একটি ফাংশন অনুমান করুন যা দুটি পূর্ণসংখ্যার যোগফল গণনা করে। ঘোষণাটি নিম্নরূপ।
int যোগফল (int num1, int num2);
ফাংশনের নাম যোগফল, এবং পরামিতি দুটি পূর্ণসংখ্যা যা হল num1 এবং num2। এই ফাংশন একটি পূর্ণসংখ্যা প্রদান করে। সম্পূর্ণ বিবৃতি একটি সেমিকোলন দিয়ে শেষ হয়৷
ঘোষণাপত্রে প্যারামিটারের নাম অন্তর্ভুক্ত করার প্রয়োজন নেই। অতএব, নিম্নলিখিত হিসাবে শুধুমাত্র ডেটা টাইপ উল্লেখ করা সম্ভব। নিম্নলিখিত একটি বৈধ ঘোষণা।
int যোগফল (int, int);
C-তে সংজ্ঞা কী?
সংজ্ঞা একটি নির্দিষ্ট কাজ সম্পাদন করার জন্য ফাংশনের প্রকৃত বিবৃতি ধারণ করে। সিনট্যাক্সটি নিম্নরূপ।
রিটার্ন_টাইপ ফাংশন_নাম (প্যারামিটার তালিকা){
// ফাংশন স্টেটমেন্ট
}
ফাংশনের নাম ফাংশন সনাক্ত করতে সাহায্য করে। একটি ফাংশন আহ্বান করার সময়, মানগুলি সেই ফাংশনে পাস করে। এই মানগুলি পরামিতিগুলিতে অনুলিপি করে। প্যারামিটার তালিকায় একটি প্যারামিটার বা পরামিতির সংখ্যা থাকতে পারে। এবং এই পরামিতিগুলির একটি ডেটা টাইপ এবং একটি নাম রয়েছে। তাছাড়া, কোনো প্যারামিটার ছাড়াই ফাংশন থাকতে পারে।
ফাংশনের স্টেটমেন্টগুলো কোঁকড়ানো বন্ধনীর ভিতরে থাকে। এটি ফাংশন বডি।ফাংশনটি কার্যকর করার পরে, এটি একটি মান প্রদান করবে। রিটার্ন টাইপ রিটার্ন মানের উপর নির্ভর করে। ফাংশন একটি পূর্ণসংখ্যা প্রদান করে, রিটার্ন টাইপ হয় int. যদি ফাংশনটি ডবল রিটার্ন করে, তাহলে রিটার্ন টাইপ ডাবল ইত্যাদি।
একটি ফাংশনের ঘোষণা এবং সংজ্ঞা সহ নীচের কোডটি পড়ুন।
চিত্র 01: দুটি সংখ্যার সমষ্টি গণনা করার প্রোগ্রাম
উপরের প্রোগ্রাম অনুসারে, লাইন 3 ঘোষণাটি প্রদর্শন করে। এটি কম্পাইলারকে ফাংশনের নাম, প্যারামিটার ইত্যাদি সম্পর্কে বলে। মূল ফাংশনে, কীবোর্ড থেকে দুটি মান নেওয়া হয় এবং সেগুলি 'a' এবং 'b' ভেরিয়েবলে সংরক্ষণ করা হয়। 12 লাইনে, এই মানগুলি যোগফল নামক ফাংশনে প্রেরণ করা হয়। এই 'a' এবং 'b' হল আর্গুমেন্ট৷
16 লাইনে, সমষ্টি ফাংশনটি কার্যকর করে।এটি num1-এ মান a এবং num2-এ b মান কপি করে। এই ফাংশনটি সমষ্টি ফেরত দেয় এবং সেই মান ভেরিয়েবল 'উত্তর' (লাইন 12) এ সঞ্চয় করে। অবশেষে, উত্তরটি স্ক্রিনে প্রিন্ট করে। সংক্ষেপে, লাইন 3 ঘোষণা দেখায় যখন লাইন 16 থেকে 18 সংজ্ঞা প্রদর্শন করে৷
সি-তে ঘোষণা এবং সংজ্ঞার মধ্যে পার্থক্য কী?
ঘোষণা হল একটি প্রোটোটাইপ যা ফাংশনের নাম এবং টাইপ স্বাক্ষর যেমন ডেটা টাইপ, রিটার্ন টাইপ এবং প্যারামিটার নির্দিষ্ট করে কিন্তু ফাংশন বডি বাদ দেয়। সংজ্ঞা ফাংশনের নাম এবং টাইপ স্বাক্ষর যেমন ডাটা টাইপ, রিটার্ন টাইপ এবং প্যারামিটার উল্লেখ করে এবং এতে ফাংশন বডি অন্তর্ভুক্ত থাকে। ঘোষণা কম্পাইলারকে ফাংশনের নাম এবং এটিকে কীভাবে কল করতে হয় সে সম্পর্কে বলে। অন্যদিকে, সংজ্ঞাটিতে ফাংশনের প্রকৃত বাস্তবায়ন রয়েছে। এটি ফাংশনের কাজ বর্ণনা করে।
সারাংশ – C এ ঘোষণা বনাম সংজ্ঞা
সি-তে ঘোষণা এবং সংজ্ঞার মধ্যে পার্থক্য হল যে সি-তে ঘোষণা কম্পাইলারকে ফাংশনের নাম, রিটার্ন টাইপ এবং প্যারামিটার সম্পর্কে বলে যখন সি-তে সংজ্ঞাটি ফাংশনের প্রকৃত বাস্তবায়ন ধারণ করে।