OT: Pregunta de C

Horst von Brand vonbrand en inf.utfsm.cl
Lun Nov 22 21:22:49 CLST 2004


"Felipe Cristian Barriga Richards (Lista)" <lista en felipebarriga.cl> dijo:
> Claudio Saavedra V. wrote:
> | On Fri, 2004-11-19 at 12:36, Gustavo Chain wrote:
> |
> |>	Bueno si, es lamentable, el libro justamente se editó en el '89.
> |>	De todas formas, como sería la forma correcta de ese código?
> |
> |
> | main (int argc, char **argv)
> | {
> |         ...
> | }
> |
> | funcion (int n)
> | {
> |         ...
> | }
> |
> |
> Deberia ser asi:
> - --------------------------------------------
> int main (int argc, char **argv) {

'int' es opcional aca

> ~         ...
> 	return (0);

El '()' es superfluo ('return' no es una funcion). Aunque en rigor debiera
usarse exit(3) y los valores del caso ("Tradicionalmente" 0 == todo OK,
pero...)

> }
> 
> void funcion (int n) {
> ~         ...
> }
> - --------------------------------------------
> 
> 'main' debe retornar un entero. Si no me equivoco: 0 si se ejecuto bien
> el programa y un valor distinto si se ejecuto mal. Tambien las funciones
> debes especificar si retornan algo (int funcion, char funcion, etc
> funcion) o "void funcion" si no retorna nada.
> 
> Tambien puedes declarar funciones locales algo como :

Esa es una extension de gcc, debieran fusilar a quien integro esa idiotez
en C (en Pascal tiene sentido, en C no hay forma de hacerlo cuadrar con el
resto del lenguaje: Recuerdese punteros a funcion, etc).

> - --------------------------------------------
> int main (int argc, char **argv) {
> 	...
> 
> 	void funcion (int n) {
> ~        	...
> 	}
> 
> 	return (0);
> }
> - --------------------------------------------

Urgh.

> Y ahi solo puedes llamar a la funcion dentro de main, (si solo la vas a
> usar localmente es mejor), asi ensucias menos tu codigo.

Para eso esta 'static', y dividir el programa en archivos.
-- 
Dr. Horst H. von Brand                   User #22616 counter.li.org
Departamento de Informatica                     Fono: +56 32 654431
Universidad Tecnica Federico Santa Maria              +56 32 654239
Casilla 110-V, Valparaiso, Chile                Fax:  +56 32 797513


Más información sobre la lista de distribución Linux