Saya terkadang melihat coders yang digunakan NULL
sebagai nilai balik main()
dalam program C dan C ++, misalnya sesuatu seperti itu:
#include <stdio.h>
int main()
{
printf("HelloWorld!");
return NULL;
}
Ketika saya mengkompilasi kode `ini dengan gcc saya mendapat peringatan:
peringatan: return membuat integer dari pointer tanpa gips [-Wint-conversion]
yang wajar karena makro NULL
harus diperluas ke (void*) 0
dan nilai pengembalian utama harus bertipe int
.
Ketika saya membuat program C ++ singkat:
#include <iostream>
using namespace std;
int main()
{
cout << "HelloWorld!";
return NULL;
}
Dan kompilasi dengan g ++, saya mendapatkan peringatan yang setara:
peringatan: mengonversi ke tipe 'int' non-pointer dari NULL [-Wconversion-null]
Tapi mengapa mereka gunakan NULL
sebagai nilai balik main()
ketika melempar peringatan? Apakah ini hanya gaya pengkodean yang buruk?
- Apa alasan untuk menggunakan
NULL
alih-alih0
sebagai nilai balikmain()
meskipun ada peringatan? - Apakah implementasi ditentukan jika ini sesuai atau tidak dan jika demikian mengapa implementasi apa pun ingin mendapatkan nilai pointer kembali?
EXIT_FAILURE
adalah 8, dan sepertinya menggunakan 1 tidak baik untuk kegagalan karena kadang-kadang digunakan sebagai keberhasilan dalam beberapa program.
NULL
pointer sebagai 0
(tanpa gips ke void *
). Dalam hal ini, cacat tidak diketahui dan tidak menghasilkan peringatan. Masih bukan untuk apa NULL digunakan.