Estoy haciendo un desafío simple de un libro en C / Objective-C, donde tengo que escribir un progtwig que calcula y muestra el cuadrado de un número entero, al mismo tiempo que pongo los números entre comillas.
Hice un progtwig que funciona con éxito pero tengo dos preguntas al respecto. Primero, teniendo en cuenta la idea de reducir la cantidad de código en mente, para practicar ser eficiente y conciso en mi código, llamé a mi función squareOfInteger
desde mi statement printf
. Aunque es aconsejable? Funcionó, pero me preocupa que esto pueda ser una mala práctica.
La otra cosa que me molesta es si debo o no reiterar que el tipo es un int
dentro del parámetro de mi función antes de mi number
variable, o si es suficiente declarar el resultado como de tipo int
, y dejar de escribir tipo En el parámetro, que he hecho a continuación.
Aquí está mi código:
#include int squareOfInteger(number) { int square = number * number; return square; } int main(int argc, const char * argv[]) { int myNumber = 5; printf("\"%d\" squared is \"%d\".\n", myNumber, squareOfInteger(myNumber)); return 0; }
Apreciaria muchísimo su ayuda.
Llamé a mi función squareOfInteger desde mi statement printf. Aunque es aconsejable? Funcionó, pero me preocupa que esto pueda ser una mala práctica.
Llamar a una función desde printf()
no es malo. Pero puede haber escenarios que conduzcan a un comportamiento indefinido ya que no se especifica el orden de evaluación dentro de printf()
Por ejemplo:
int func(int *p) { *p =30; } int main() { printf("%d %d",num,func(&num)); return 0; }
Aquí está llamando a func()
, así como imprimiendo el valor de num
para que tenga UB.
si es suficiente declarar el resultado como de tipo int, y omitir el tipo en el parámetro
Si no se especifica el tipo de argumento, entonces el valor predeterminado es int
Pero siempre es bueno mencionar el tipo de los argumentos.
“Llamé a mi función squareOfInteger desde mi statement printf. ¿Es esto aconsejable?”
No hay nada de malo en llamar a la función desde dentro de una función. Depende del caso, donde dice que necesita conservar el valor cuadrado (como no en su caso donde solo necesita imprimir el valor) y realizar otras operaciones en él. me gusta:
int value = myFun(100); int nextVal = myNextFun(value);
“La otra cosa que me molesta es si debo o no reiterar que el tipo es un int dentro del parámetro de mi función antes de mi número de variable, o si es suficiente declarar el resultado como de tipo int, y omitir Escriba el parámetro, que he hecho a continuación “.
Sí, debe usar definir el tipo de número (en su caso, de manera predeterminada sería un tipo entero y fallaría si lo tiene de otro tipo) como una mejor práctica, ya que hará que el código sea más claro y legible.