GeeksforGeeks

Tekintsük a következő két definíciója main ().

intmain()
{
return0;
}



a

intmain(void)
{
return0;
}



What is the difference?

In C++, there is no difference, both are same.

mindkét definíció C-ben is működik, de a void második definíciója technikailag jobbnak tekinthető, mivel egyértelműen meghatározza, hogy a main csak paraméter nélkül hívható meg.
C-ben, ha egy függvény aláírása nem ad meg argumentumot, ez azt jelenti, hogy a függvény tetszőleges számú paraméterrel vagy paraméterek nélkül hívható meg. Például próbálja meg lefordítani és futtatni a következő két C programot (ne felejtse el menteni a fájlokat .c). Megjegyzés a különbség a két aláírás fun ().

voidfun() { }
intmain(void)
{
fun(10, "GfG", "GQ");
return0;
}


div>

a fenti program fordít és fut (lásd ezt), de a következő program nem fordítja (lásd ezt)

void

fun(void) { }

intmain(void)
{
fun(10, "GfG", "GQ");
return0;
}



Unlike C, in C++, both of the above programs fails in összeállítás. A C++ – ban mind a fun (), mind a fun(void) ugyanaz.

tehát a különbség az, hogy C – ben az int main() tetszőleges számú argumentummal hívható meg, de az int main(void) csak argumentum nélkül hívható meg. Bár ez nem tesz különbséget a legtöbb alkalommal, az “int main(void)” használata ajánlott gyakorlat a C.

gyakorlat:
megjósolni a következő C programok kimenetét.

Question 1

#include <stdio.h>
intmain()
{
staticinti = 5;
if(--i){
printf("%d ", i);
main(10);

}



Issue 2

#include <stdio.h>

intmain(void)
{
staticinti = 5;
if(--i){
printf("%d ", i);
main(10);
}
}


Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.