আমি মাঝে মাঝে কোডারগুলি দেখতে পাই যা সি এবং সি ++ প্রোগ্রামগুলিতে 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
করার কারণ কী ?0
main()
- এটি প্রয়োগ-সংজ্ঞায়িত যদি এটি যথাযথ হয় বা না হয় এবং তবে যদি কোনও বাস্তবায়ন কেন পয়েন্টার মান ফিরে পেতে চাইবে?
EXIT_FAILURE
8,, এবং এটি 1 এর ব্যবহার ব্যর্থতার পক্ষে ভাল নয় কারণ এটি কিছু প্রোগ্রামে সাফল্যের জন্য ব্যবহৃত হয়েছিল।
NULL
পয়েন্টারটি 0
(কোনও cast ালাই ছাড়াই void *
) হিসাবে সংজ্ঞায়িত করা পুরোপুরি বৈধ । এই ক্ষেত্রে, ত্রুটি নজরে না যায় এবং একটি সতর্কতা উত্পন্ন করে না। এটি এখনও NUL ব্যবহার করা উচিত নয়।