সি প্রোগ্রামিং শেখার সময় আমরা `main()` ফাংশনের ভিতর আমাদের সব কোড লিখি। নিচের উদাহরন প্রোগ্রামটি লক্ষ করা যাকঃ
```
#include<stdio.h>
int main()
{
printf("Hello Bangladesh!");
return 0;
}
```
এখানে `int main()` এ `int` এর অর্থ হলঃ `main()` ফাংশনটি কাজ শেষ করে একটি `int` অর্থাৎ একটি `integer` মান `return` করবে।
সে কারনে আমরা `main()` ফাংশনের শেষে লিখি `return 0;`, মানে `0` কে `return` করি।
প্রোগ্রামটি **Code::Blocks** এ চালু করলে নিচেরমত ফলাফল দেখা যাবেঃ
```
Hello Bangladesh!
Process returned 0 (0x0) execution time : 0.002 s
```
এখানে `Process returned 0` আমাদের প্রোগ্রাম যে `0` রিটার্ন করেছে তার কথা বলছে। `return 0;` এর বদলে অন্য সংখ্যা দিয়ে দেখুন এখানে সে সংখ্যাটিই দেখাবে।
কাকে `return` করি এ মান?
=====================
প্রতিটি প্রোগ্রাম চালু করে Operating System। Operating System এর উদাহরন হল Windows, Android ইত্যাদি। অপারেটিং সিস্টেম সি প্রোগ্রাম চালু করার পর `main()` ফাংশন কে `call` করে এবং অপেক্ষা করে প্রোগ্রামটি কি ভ্যালু রিটার্ন করে তার জন্য। যদি কোনো প্রোগ্রাম `0` মানে শূণ্য রিটার্ন করে তার মানে হল প্রোগ্রামটি ঠিক মত বন্ধ হয়েছে। `0` ছাড়া অন্য কিছু রিটার্ন করা মানে প্রোগ্রামটি ঠিক মত বন্ধ হয়নি, প্রোগ্রামে সমস্যা হয়েছিল।
এ কারনে আমরা প্রোগ্রামের শেষে লিখি `return 0;`। কোনো কারনে `return 0;` হওয়ার আগেই প্রোগ্রাম ক্রাশ করলে অপারেটিং সিস্টেমের কাছে অন্য কোনো কিছু যায় বা কিছুই যায়না। এতে অপারেটিং সিস্টেম বুঝতেও পারেনা প্রোগ্রামের কি অবস্থা এবং সে অনুযায়ী ব্যবস্থাও নিতে পারেনা।
কিছু কিছু প্রোগ্রামার `void main()` ব্যবহার করেন, যার ফলে `return 0;` দেওয়ার প্রয়োজন হয় না। কিন্তু এটি ভালো প্র্যাকটিস না। `int main()` এবং `return 0;` দেওয়াটাই সব সময় ভালো।
---
`conio.h`
========
**Turbo C++** দিয়ে সি প্রোগ্রামিং করার সময় `conio.h` হেডার ফাইলটি ব্যবহার করা হয়। এটি কোনো স্ট্যান্ডার্ড লাইব্রেরি না। তাই **Code::Blocks** সহ অন্য সফটওয়্যারে এটি ব্যবহার করা হয়না।
কিছু প্রোগ্রামে `getch()` ফাংশনটির জন্য এটি ব্যবহার করা হয়।
যেহেতু `conio.h` স্ট্যান্ডার্ড কোনো হেডার লাইব্রেরি না, এটি ব্যবহার না করাই ভালো।
`return 0;`
=======
সি প্রোগ্রামিং শেখার সময় আমরা `main()` ফাংশনের ভিতর আমাদের সব কোড লিখি। নিচের উদাহরন প্রোগ্রামটি লক্ষ করা যাকঃ
```
#include<stdio.h>
int main()
{
printf("Hello Bangladesh!");
return 0;
}
```
এখানে `int main()` এ `int` এর অর্থ হলঃ `main()` ফাংশনটি কাজ শেষ করে একটি `int` অর্থাৎ একটি `integer` মান `return` করবে।
সে কারনে আমরা `main()` ফাংশনের শেষে লিখি `return 0;`, মানে `0` কে `return` করি।
প্রোগ্রামটি **Code::Blocks** এ চালু করলে নিচেরমত ফলাফল দেখা যাবেঃ
```
Hello Bangladesh!
Process returned 0 (0x0) execution time : 0.002 s
```
এখানে `Process returned 0` আমাদের প্রোগ্রাম যে `0` রিটার্ন করেছে তার কথা বলছে। `return 0;` এর বদলে অন্য সংখ্যা দিয়ে দেখুন এখানে সে সংখ্যাটিই দেখাবে।
কাকে `return` করি এ মান?
=====================
প্রতিটি প্রোগ্রাম চালু করে Operating System। Operating System এর উদাহরন হল Windows, Android ইত্যাদি। অপারেটিং সিস্টেম সি প্রোগ্রাম চালু করার পর `main()` ফাংশন কে `call` করে এবং অপেক্ষা করে প্রোগ্রামটি কি ভ্যালু রিটার্ন করে তার জন্য। যদি কোনো প্রোগ্রাম `0` মানে শূণ্য রিটার্ন করে তার মানে হল প্রোগ্রামটি ঠিক মত বন্ধ হয়েছে। `0` ছাড়া অন্য কিছু রিটার্ন করা মানে প্রোগ্রামটি ঠিক মত বন্ধ হয়নি, প্রোগ্রামে সমস্যা হয়েছিল।
এ কারনে আমরা প্রোগ্রামের শেষে লিখি `return 0;`। কোনো কারনে `return 0;` হওয়ার আগেই প্রোগ্রাম ক্রাশ করলে অপারেটিং সিস্টেমের কাছে অন্য কোনো কিছু যায় বা কিছুই যায়না। এতে অপারেটিং সিস্টেম বুঝতেও পারেনা প্রোগ্রামের কি অবস্থা এবং সে অনুযায়ী ব্যবস্থাও নিতে পারেনা।
কিছু কিছু প্রোগ্রামার `void main()` ব্যবহার করেন, যার ফলে `return 0;` দেওয়ার প্রয়োজন হয় না। কিন্তু এটি ভালো প্র্যাকটিস না। `int main()` এবং `return 0;` দেওয়াটাই সব সময় ভালো।
---
`conio.h`
========
**Turbo C++** দিয়ে সি প্রোগ্রামিং করার সময় `conio.h` হেডার ফাইলটি ব্যবহার করা হয়। এটি কোনো স্ট্যান্ডার্ড লাইব্রেরি না। তাই **Code::Blocks** সহ অন্য সফটওয়্যারে এটি ব্যবহার করা হয়না।
কিছু প্রোগ্রামে `getch()` ফাংশনটির জন্য এটি ব্যবহার করা হয়।
যেহেতু `conio.h` স্ট্যান্ডার্ড কোনো হেডার লাইব্রেরি না, এটি ব্যবহার না করাই ভালো।