Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Que diferencia hay?

Iniciado por Harko, 20 de Junio de 2006, 12:53:29 PM

« anterior - próximo »

Harko

Holaa

Llevo un tiempo trasteando con el Dev-c++ y, acostumbrado como estaba al borland, me he dado cuenta de que no me deja poner void main. Puede parecer una tonteria pero cuando te acostumbras a una cosa cuesta cambiar.

Lo que queria saber es porque el devc++ no admite void main y me obliga a ponerle int main con su correspondiente return. O esque soy yo el que no sabe como ponerlo bien? :?

A todo esto, el echo de poner void, int o lo que sea en el main afecta en algo al programa en general o es meramente estetico?

Harko.
-=Harko´s Blog=-
Fui el primer civil en probar el "Lord of Creatures" y ademas usaban mis cascos. :D

-=Portfolio=-

Alguno de mis juegos:
-=Feed The Frog=-

Neroncity

Pablo Zurita

Eso es porque el Standard ISO C++ no permite usar void main(). Es uno de los errores más comunes que los programadores descuidados tienen. El Standard ISO C++ requiere que main devuelva un int.

Harko

-=Harko´s Blog=-
Fui el primer civil en probar el "Lord of Creatures" y ademas usaban mis cascos. :D

-=Portfolio=-

Alguno de mis juegos:
-=Feed The Frog=-

Neroncity

yens

yo siempre he pensado que el main iba:

int main(void) si no querias darle parametros de ejecucion al programa :S

Pablo Zurita

Cita de: "yEnS"yo siempre he pensado que el main iba:

int main(void) si no querias darle parametros de ejecucion al programa :S
Aunque no se que tan recomendable es no capturar los parámetros, el Standard ISO C++ te permite usar int main(void).

samsaga2

Aqui comienzan las incompatibilidades entre el estandard ISO del C y del C++. En el del C si puedes hacer un void main() pero en el de C++ no.

http://homepages.tesco.net/J.deBoynePollard/FGA/legality-of-void-main.html

TheWind

Mucho me temo q ese enlace es incorrecto, al menos parcialmente.

Actualmente hay dos estandares de C: ANSI-C (o C89) y ISO-C (o C99), esta última aun no es la predominante -y muchos esperamos q no lo sea jamás, ya que "guarrea" el lenguaje cosa fina-.

En ANSI-C, es OBLIGATORIO inicializar main como int main (int argc, char *argv[]), aunque se admite como parcialmente correcto el int main (void). En C99, ambas son correctas. Podeis comprobar esto c-faq.com

Harko

Pues ya iva a preguntar que significaba el (int argc, char *arbv[]), que me tenia mosqueado eso de tener que escribirlo siempre.

Porque valen para algo, no? Y a que te refieres con lo de que es parcialmente correcto poner (void) en el C89?

De todas formas me sigue pareciendo muy engorroso el poner esas variables en los main. Al menos no me piden ponerlas en los examenes (aun), no se si me acordaria de esos nombrecitos :?

Harko.
-=Harko´s Blog=-
Fui el primer civil en probar el "Lord of Creatures" y ademas usaban mis cascos. :D

-=Portfolio=-

Alguno de mis juegos:
-=Feed The Frog=-

Neroncity

Ruben

Cita de: "Harko"Pues ya iva a preguntar que significaba el (int argc, char *arbv[]), que me tenia mosqueado eso de tener que escribirlo siempre.

Porque valen para algo, no?

int argc te indica el numero de parametros pasados en la estuctura char** argv.

A saber: son los posibles parametros que puedes pasarle a tu programa.

Ejem:

./ejemplo hola mundo

Le has pasado al programa "ejemplo" dos parametros: "hola" y "mundo". Luego dentro de tu programa los puedes recoger como:

char* nombrePrograma = argv[0];
char* parametro1 = argv[1];
char* parametro2 = argv[2];


La posicion 0 del array de cadenas esta reservado para el nombre de tu programa.

Un saludo,
Rubén.

Harko

Mmm, interesante...


pues ahora si que le encuentro utilidad a eso, sip.

Harko.
PD:Que ganas tenia de conseguir una excusa para poner esa fotico XD
-=Harko´s Blog=-
Fui el primer civil en probar el "Lord of Creatures" y ademas usaban mis cascos. :D

-=Portfolio=-

Alguno de mis juegos:
-=Feed The Frog=-

Neroncity

MrK

Cita de: "Harko"Al menos no me piden ponerlas en los examenes (aun), no se si me acordaria de esos nombrecitos :?
.

no necesitan tener esos nombres, puedes poner tranquilamente

int main (int numParametros, char **arrayParametros)

zupervaca

Buenas harko si quieres adelantarte a toda tu clase e ir pillando el truco al c puedes pasarte por esta web, esta en español y explican las cosas de forma basica y sencilla y con ejemplos http://www.uib.es/c-calculo/cursc.htm , si quieres c++ pasate por esta otra http://mat21.etsii.upm.es/ayudainf/aprendainf/Cpp/manualcpp.pdf , las busque en el google por que veo que tienes algunas dudas basicas que podrias solucionar rapidamente con documentos de este tipo :wink:.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.