আমি মাঝে মাঝে কোডারগুলি দেখতে পাই যা সি এবং সি ++ প্রোগ্রামগুলিতে NULLরিটার্ন মান হিসাবে ব্যবহৃত হয় main(), উদাহরণস্বরূপ এর মতো কিছু:
#include <stdio.h>
int main()
{
printf("HelloWorld!");
return NULL;
}
আমি যখন এই সিসি কোডটি জিসিসি দিয়ে সংকলন করি তখন আমি এর সতর্কতা পাই:
সতর্কতা: রিটার্ন বিন্যাস ছাড়াই পয়েন্টার থেকে পূর্ণসংখ্যা তৈরি করে [-উইন্ট-রূপান্তর]
যা যুক্তিসঙ্গত কারণ ম্যাক্রোটি NULLপ্রসারিত হবে (void*) 0এবং মূলটির ফেরতের মান টাইপ হবে int।
আমি যখন একটি সংক্ষিপ্ত সি ++ প্রোগ্রাম করি:
#include <iostream>
using namespace std;
int main()
{
cout << "HelloWorld!";
return NULL;
}
এবং এটি g ++ দিয়ে সংকলন করুন, আমি একটি সমতুল্য সতর্কতা পেয়েছি:
সতর্কতা: নূন-পয়েন্টার টাইপ 'ইন্ট' তে রূপান্তর করা হচ্ছে নুল [-উসকভারশন-নাল] থেকে
কিন্তু কেন তারা যখন কোনও সতর্কবার্তা ছুঁড়ে দেয় তখন কেন তারা NULLফেরতের মান হিসাবে ব্যবহার main()করবে? এটা কি শুধুই খারাপ কোডিং স্টাইল?
- সতর্কতা থাকা সত্ত্বেও রিটার্ন মান হিসাবে ব্যবহার
NULLকরার কারণ কী ?0main() - এটি প্রয়োগ-সংজ্ঞায়িত যদি এটি যথাযথ হয় বা না হয় এবং তবে যদি কোনও বাস্তবায়ন কেন পয়েন্টার মান ফিরে পেতে চাইবে?
EXIT_FAILURE8,, এবং এটি 1 এর ব্যবহার ব্যর্থতার পক্ষে ভাল নয় কারণ এটি কিছু প্রোগ্রামে সাফল্যের জন্য ব্যবহৃত হয়েছিল।
NULLপয়েন্টারটি 0(কোনও cast ালাই ছাড়াই void *) হিসাবে সংজ্ঞায়িত করা পুরোপুরি বৈধ । এই ক্ষেত্রে, ত্রুটি নজরে না যায় এবং একটি সতর্কতা উত্পন্ন করে না। এটি এখনও NUL ব্যবহার করা উচিত নয়।