El día 26 de diciembre de 2014, 8:37, Altair Linux <altairli...@gmail.com> escribió: > Hola, > > estoy con unas cosas de un proyecto que, espero, finalizare pronto y > me sale una duda sobre la programacion de C/C++ en Linux en general y > en Debian en particular, porque estoy programando esto desde Debian. > > ¿Que se suele preferir como parametro en una funcion: int o char?. > ¿Y como valor de retorno: int o char? > > Teniendo en cuenta que tanto los parametros como los valores de > retorno son siempre numeros, y que generalmente (hay alguna que otra > excepcion) los valores van del 0 al 100, en principio es suficiente > con un char. > > Sin embargo, por lo que he visto de otros proyectos se usa int aunque > por el valor del numero no se suela usar. > > Uno de los motivos que se me ocurre es que se use tanto para dejar > claro que parametro o el valor de retorno es un numero y no parezca > que puede ser un caracter. > > ¿Opiniones? > > > -- > To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org > with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org > Archive: > https://lists.debian.org/ca+hdpflmknnh5gtdziaw5czvjxwkci93r2gqgmt37oiij...@mail.gmail.com >
(Lo reenvío porque no me di cuenta y lo envié a tu mail y no a la lista) Antes de usar "char" te podría recomendar usar el tipo "short", que te utiliza 2 bytes y si no me confundo va desde -32768 hasta +32767. No usa mucho mas: como dije "short" usa 2 bytes y "char" usa 1 byte. Pero en el caso de que no quieras gastar esa memoria, podes usar "char". Pero con unas condiciones antes. Tenés mucha razón cuando decís de que "hay que dejar en claro que el parámetro o el valor de retorno es un número y no parezca que pueda ser un carácter". Si directamente pones "char" al escribir tu programa cuando quieres representar números, el día que quieras modificarlo te va a resultar muy difícil de entenderlo. Además el programa va a estar lleno de comentarios indicando de que eso es en realidad un número y no un carácter. Y cuando un programa empieza a tener tipos de comentarios indicando su funcionamiento, es que lo estas haciendo mal. Entonces lo que te recomiendo usar es "typedef". Lo que vas a hacer es poner "typedef char shortest". "shortest" es el nuevo tipo de dato (Aunque si querés podes ponerle cualquier otro nombre, como "mini", "mini_int", etc. Aunque te recomendaría un nombre que sea representativo -No le vas a poner de nombre "tipo_dato", ya que no indica mucho con su nombre-). Entonces cuando hagas una declaración de datos shortest funcion(int a, shortest b) en realidad sería exactamente igual a char funcion(int a, char b) pero en el primer caso, es mucho más claro de que estas usando un número y no un caracter. Repito, tanto "shortest" como "char" usa un byte (es decir, un "shortest" es exactamente igual que un "char"). Si lo quieres pensar de otra forma, es como si usaras una constante, y en todos los lugares donde parezca "shortest" cuando se compile va a aparecer "char" (En realidad no funciona así, pero podes pensarlo de esa manera tranquilamente.). Obviamente este tipo de datos no se limita sólo en la declaración de los parámetros, sino en la declaración de una variable en cualquier tipo de lugar. Otra ventaja de ésto es que, si en un futuro te quedas corto con la amplitud de rangos de "char", podes modificarlo en un sólo lado para darle mas rango (y ponerle un "short" por ejemplo). Si vamos un poco más lejos, los puristas de objetos dicen que directamente no tienen que existir los tipos primitivo de datos (como int, float, etc) sino que deberían existir todos objetos, cosa de que si en un futuro el tipo de dato cambia, solo se tenga que realizar las modificaciones en una sola parte (En la estructura y/o comportamiento de la clase). Usando typdef no es como usar objetos, aunque como te dije anteriormente, te va a permitir realizar las modificaciones en un solo lugar (Y así evitarás muchos errores imperceptibles). Si quieres buscar más información sobre typedef te recomiendo http://en.wikipedia.org/wiki/Typedef (Está bastante simple y completo). Sino pones en un buscador y listo. Saludos. -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: https://lists.debian.org/cae6_yqevz2t0pe9_yytdv3gjpqwiuhpaqbzeuzbs_wtdco2...@mail.gmail.com