Bazen C ve C ++ programlarında NULL
dönüş değeri olarak kullanılan kodlayıcılar, main()
örneğin böyle bir şey görüyorum :
#include <stdio.h>
int main()
{
printf("HelloWorld!");
return NULL;
}
Bu kodu gcc ile derlediğimde şu uyarıyı alıyorum:
uyarı: return, işaretçi olmadan tamsayı yapar [-Wint-conversion]
Bu makuldür çünkü makro NULL
genişler (void*) 0
ve ana dönüş değeri türden olur int
.
Kısa bir C ++ programı yaptığımda:
#include <iostream>
using namespace std;
int main()
{
cout << "HelloWorld!";
return NULL;
}
Ve g ++ ile derleyin, eşdeğer bir uyarı alıyorum:
uyarı: NULL değerinden işaretçi olmayan 'int' türüne dönüştürme [-Wconversion-null]
Ama neden uyarı verdiğinde NULL
dönüş değeri olarak kullanıyorlar main()
? Sadece kötü kodlama tarzı mı?
- Kullanmak sebebi nedir
NULL
yerine0
dönüş değeri olarakmain()
uyarısına rağmen? - Bunun uygun olup olmadığı uygulama olarak tanımlanmış mı ve eğer öyleyse herhangi bir uygulama neden bir işaretçi değeri geri almak isteyesin?
EXIT_FAILURE
8 ve bazı programlarda bazen bir başarı olarak kullanıldığından 1'in başarısızlık için iyi olmadığı anlaşılıyor.
NULL
işaretçiyi 0
(bir oyuncu kadrosu olmadan void *
) olarak tanımlamak tamamen geçerlidir . Bu durumda, kusur fark edilmez ve bir uyarı oluşturmaz. NULL için hala kullanılmaması gereken şey bu değil.