return 0 কেন ব্যবহার করা হয়?
সি প্রোগ্রামে মেইন ফাংশনের ভেতরে return 0 কেন ব্যবহার করা হয়?
রিটার্নের ব্যপারে আদর্শ নীতিমালা হচ্ছে একটি প্রোগ্রাম তিন ধরনের মান রিটার্ন করতে পারবে,
ISO/IEC 9899:1999 (C99) আদর্শ নীতিমালায় আরো যে শর্ত আরোপ করা হয়েছে তা হলো,
এখন প্রশ্ন হচ্ছে
আমরা যখন কোনো একটা কোড লিখে প্রোগ্রামটি চালাই, আমরা অপারেটিং
সিস্টেমকে নির্দেশ দেই এবং অপারেটিং সিস্টেম প্রোগ্রামটিকে চালায়।
প্রোগ্রামের এক্সিকিউশন যখন শেষ হবে তখন সে
সংক্ষিপ্ত উত্তর
আমরা যখন সি ল্যাঙ্গুয়েজে কোড লেখি তখন কোডেরmain()
ফাংশন থেকে এক্সিকিউশন শুরু হয়। main()
ফাংশন যদি এইভাবে ডিক্লেয়ার করা হয়: int main()
তাহলে কম্পাইলার আশা করে যে ফাংশনটি যখন এক্সিকিউশন শেষ হবে তখন সে একটি
ইন্টিজার রিটার্ন করবে। অর্থাৎ, ফাংশনের শেষে আমাদের কোনো একটা ইন্টিজার
রিটার্ন করতে হবে। প্রচলিত নিয়মে 0
রিটার্ন করা হয়, প্রোগ্রামটি ঠিকভাবে কোনো সমস্যা ছাড়াই চলেছে সেটা বোঝানোর জন্য। তবে 0
ই যে রিটার্ন করতে হবে এমন কোনো কথা নেই। চাইলে যেকোন ইন্টিজার-ই রিটার্ন করা যায়। বিস্তারিত উত্তর
সি ল্যাঙ্গুয়েজ
ISO/IEC 9899:1989 (C90) আদর্শ নীতিমালা অনুযায়ী নিচে উল্লেখিত তিনটি উপায়েmain()
ফাংশন ডিক্লেয়ার করা যাবে।int main(void)
int main(int argc, char **argv)
int main(int argc, char *argv[])
যেখানে দ্বিতীয় ও তৃতীয় লাইন টি সমতূল্য। কমান্ড লাইন থেকে ইনপুট নেওয়ার ক্ষেত্রে দ্বিতীয় অথবা তৃতীয়টি ব্যবহার করা হয়।রিটার্নের ব্যপারে আদর্শ নীতিমালা হচ্ছে একটি প্রোগ্রাম তিন ধরনের মান রিটার্ন করতে পারবে,
0
EXIT_SUCCESS
EXIT_FAILURE
যেখানে দ্বিতীয় ও তৃতীয় মানটি stdlib.h
ফাইলে #define
করা আছে।ISO/IEC 9899:1999 (C99) আদর্শ নীতিমালায় আরো যে শর্ত আরোপ করা হয়েছে তা হলো,
main()
ফাংশনের ডিক্লেয়ারেশনেint
শব্দটা অবশ্যই উল্লেখ করতে হবে। অর্থাৎ,main()
না লিখে অবশ্যইint main()
লিখতে হবে।return 0
কথাটি চাইলে বাদ দেওয়া যাবে। যদি এই লাইনটা না লেখা হয় ডিফল্ট হিসেবেmain()
ফাংশন এক্সিকিউশনের শেষে0
রিটার্ন করা হবে।
int main()
এর পরিবর্তে void main()
ব্যবহার করতে পারি। তবে int main()
ব্যবহার করাটাই বেশি সমর্থিত ও উৎসাহিত।সি++ ল্যাঙ্গুয়েজ
সি++ ল্যাঙ্গুয়েজেও C99 এর মতো তিনভাবেmain()
ফাংশন ডিক্লেয়ার করা যায়।int main(void)
int main(int argc, char **argv)
int main(int argc, char *argv[])
সি++ এর আদর্শ নিয়মে void main()
ব্যবহার করা একেবারেই নিষিদ্ধ, অর্থাৎ main()
ফাংশনকে অবশ্যই ইন্টিজার রিটার্ন করতে হবে, তা না হলে কোড কম্পাইল হবে না।
এখন প্রশ্ন হচ্ছে main()
ফাংশনের কিছু রিটার্ন করার প্রয়োজন কি?
আমরা যখন কোনো একটা কোড লিখে প্রোগ্রামটি চালাই, আমরা অপারেটিং
সিস্টেমকে নির্দেশ দেই এবং অপারেটিং সিস্টেম প্রোগ্রামটিকে চালায়।
প্রোগ্রামের এক্সিকিউশন যখন শেষ হবে তখন সে 0
মানটি অপারেটিং সিস্টেম এর কাছে রিটার্ন করবে। 0
নির্দেশ করে যে প্রোগ্রামটি সঠিক ভাবে চলেছে। আমরা অপারেটিং সিস্টেম অথবা
কোনো কমান্ড লাইনের মাধ্যমে যেভাবেই প্রোগ্রাম চালাই না কেনো, প্রোগ্রাম কত
মান রিটার্ন করলো সেটা গুরুত্বপূর্ন না। যেটা জানা গুরুত্বপূর্ণ সেটা হলো
প্রোগ্রামটা ঠিকভাবে চলে শেষ হয়েছে কিনা। আদর্শ নিয়ম হচ্ছে, - প্রোগ্রাম ঠিকভাবে চলে এক্সিট করলে
0
রিটার্ন করা, এবং - প্রোগ্রাম চলাকালে কোনো এরর (মেমোরী ওভারফ্লো অথবা অ্যাড্রেসিং
সংক্রান্ত এরর অথবা যে কোনো এরর) হয়ে যদি প্রোগ্রামটি মধ্যপথেই বন্ধ হয়ে
যায় তাহলে,
0
ছাড়া যেকোন মান রিটার্ন করা।
#define
করে নিতে
পারি। তাহলে, ওই প্রোগামের প্যারেন্ট প্রোগ্রাম থেকে আমরা সিদ্ধান্ত নিতে
পারবো, প্রোগ্রামটা ঠিকমতো চলেছে কিনা এবং যদি ঠিকমতো না চলে থাকে তাহলে
ঠিক কোথায় এরর টা হয়েছে।
No comments