ভাল, এটা পারে ।
উদাহরণস্বরূপ, প্ল্যান 9 অপারেটিং সিস্টেমে ব্যবহৃত সি এর উপভাষায় main
সাধারণত একটি void
ফাংশন হিসাবে ঘোষিত হয় , তবে প্রস্থান স্থিতিটি ফাংশনটিতে একটি স্ট্রিং পয়েন্টার পাস করে কলিং পরিবেশে ফিরে আসে exits()
। খালি স্ট্রিং সাফল্য বোঝায় এবং যে কোনও ফাঁকা স্ট্রিং কোনও প্রকার ব্যর্থতা বোঝায়। এই পারে না থাকার বাস্তবায়িত হয়েছে main
একটি ফিরতি char*
ফলাফল।
এবং অবশ্যই float
বা একটি double
প্রস্থান স্থিতি সহ একটি সিস্টেম বাস্তবায়ন করা সম্ভব হবে ।
তাহলে কেন int
? এটি কেবল সম্মেলনের বিষয় - এবং তাদের অধীনে পরিচালিত অপারেটিং সিস্টেম এবং প্রোগ্রামগুলি রাখার একটি দুর্দান্ত মূল্য রয়েছে যা একটি সাধারণ কনভেনশন মেনে চলে।
ইউনিক্স কনভেনশনটি হ'ল 0 সাফল্য এবং অ-শূন্যকে চিহ্নিতকরণ ব্যর্থতার সাথে পূর্ণসংখ্যা স্থিতি কোড ব্যবহার করা হয় (কারণ সাধারণত সফল হওয়ার একমাত্র উপায় তবে ব্যর্থ হওয়ার একাধিক উপায় রয়েছে)। আমি জানি না যে এই সম্মেলনের উদ্ভব ইউনিক্স থেকে হয়েছিল; আমার সন্দেহ হয় এটি পূর্ববর্তী অপারেটিং সিস্টেম থেকে এসেছে।
ভাসমান-পয়েন্টটি আরও কঠিন সম্মেলন হবে, কারণ (ক) ভাসমান-বিন্দু সমর্থন সর্বজনীন নয়, (খ) ভাসমান-পয়েন্টের মান এবং ত্রুটির অবস্থার মধ্যে একটি ম্যাপিং সংজ্ঞা দেওয়া আরও কঠিন, (গ) বিভিন্ন সিস্টেম বিভিন্ন ভাসমান- উপস্থাপনা উপস্থাপনা এবং (ঘ) আপনার প্রোগ্রামের প্রস্থান স্থিতিতে কোনও গোলাকার ত্রুটি সনাক্ত করার মজাটি কেবল কল্পনা করুন। অন্যদিকে, পূর্ণসংখ্যার ত্রুটি কোডগুলি গণনায় নিজেকে খুব ভাল ধার দেয়।
পরিকল্পনা 9, যেমনটি আমি উল্লেখ করেছি, স্ট্রিংগুলি ব্যবহার করে, তবে এটি মেমরি পরিচালনা, চরিত্রের এনকোডিং ইত্যাদির জন্য কিছুটা জটিলতা আরোপ করে It ব্যাপক সম্মেলন।
(উল্লেখ্য, C ++ main
পারেন শুধুমাত্র আসতে int
, এবং সি void main
শুধুমাত্র যদি কম্পাইলার বিশেষভাবে এটি সমর্থন অনুমোদিত হয়। অনেক কম্পাইলার খুব জোরে যদি আপনি লিখতে অভিযোগ না void main
, কিন্তু এটা বলতে শুধুমাত্র সামান্য অত্যুক্তি যে এটা ভুল ।)