elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [C]funciones
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C]funciones  (Leído 2,481 veces)
k0b3

Desconectado Desconectado

Mensajes: 4


Ver Perfil
[C]funciones
« en: 25 Mayo 2013, 05:27 am »

Código
  1. #include <stdio.h>
  2. void mensaje(int a);  //aun cambiando int a por void
  3. int main(void){
  4. int x0;
  5. printf("Ingrese un número: ");
  6. scanf("%d",&x0);
  7. if (x0==1){
  8. mensaje(x0); //¿Por que necesita x0?
  9. }else{
  10. printf("Error.");
  11. }
  12. }
  13.  
  14. void mensaje(int x0){
  15. printf("hola mundo");
  16. }
  17.  

El programa en sí mismo está bien... pero no entiendo porque necesita la funcion recibir una variable entera [mensaje(x0);] llamada x0... es decir, ¿no bastaria solo con llamar a la funcion?

lo pregunto porque le puse void en lo que va a recibir pero aún así lo necesita.. he buscado en muchos libros y videos y ninguno muestra una respuesta clara...


« Última modificación: 25 Mayo 2013, 06:04 am por k0b3 » En línea

KaL3o

Desconectado Desconectado

Mensajes: 60



Ver Perfil
Re: [C]funciones
« Respuesta #1 en: 25 Mayo 2013, 06:39 am »

eso es porque al declarar tu funcion estas mandandole parametros

en este caso usas
Código
  1. void mensaje (int a)

la primera palabra es el tipo de lo que se va a retornar, la segunda el nombre de la funcion y dentro de los parentesis los parametros de la funcion.

Al inicio de tu codigo estas declarando que esta funcion lleva un parametro en este caso int a, incluso puedes quitarle la a y dejar solo int, asi la funcion sabe que va a recibir un entero. Si no le colocas ningun parametro entonces la funcion sabra que no va a recibir ninguno, de igual forma si le pones 2 o mas.

al momento de declarar la funcion puedes eliminarle el parametro.

Espero esto te sirva para aclarar dudas :)
Código
  1. #include <stdio.h>
  2. void mensaje();  //ahora estamos declarando que la función no recibe parametros
  3. int main(void){
  4.    int x0;
  5.    printf("Ingrese un número: ");
  6.    scanf("%d",&x0);
  7.    if (x0==1){
  8.        mensaje(); //ya no necesita el x0
  9.    }else{
  10.        printf("Error.");
  11.    }
  12. }
  13.  
  14. void mensaje(){ //aqui tampoco necesita el x0 o el int como lo quiseras llamar aquí
  15.    printf("hola mundo");
  16. }
  17.  
salu2 :)


« Última modificación: 25 Mayo 2013, 06:52 am por KaL3o » En línea

Todos los caminos se vuelven a juntar. Pero nunca de la misma forma.
k0b3

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: [RESUELTO]funciones
« Respuesta #2 en: 25 Mayo 2013, 08:05 am »

bien gracias no me habia resultado porque le puse void a todas XD
En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: [C]funciones
« Respuesta #3 en: 25 Mayo 2013, 14:44 pm »

Un comentario:

En C++ cuando se declara una función en la forma:
Código
  1. int fn();
Ello indica que el tipo de retorno de la función es int y no recibe argumentos.

Pero en C la misma declaración:
Código
  1. int fn();
Indica una función que recibe un numero no determinado de argumentos, para indicar que no recibe argumentos se debe indicar explícitamente utilizando la palabra reservada void:
Código
  1. int fn(void);

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
k0b3

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: [C]funciones
« Respuesta #4 en: 25 Mayo 2013, 18:12 pm »

es eso lo extraño, le puse void a todas y en la linea de mensaje no me permitio ponerle void..
En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: [C]funciones
« Respuesta #5 en: 25 Mayo 2013, 22:34 pm »

es eso lo extraño, le puse void a todas y en la linea de mensaje no me permitio ponerle void..

No termino de entender lo que quieres decir, pero con la observación de rir3760 el programa furula bien, es decir así:


Código
  1. #include <stdio.h>
  2.  
  3. void mensaje(void);
  4.  
  5. int main(void){
  6.    int x0;
  7.    printf("Ingrese un numero: ");
  8.    scanf("%d",&x0);
  9.    if (x0==1)
  10.        mensaje();
  11.    else
  12.        printf("Error.");
  13.    return 0;
  14. }
  15. void mensaje(void){
  16.    printf("hola mundo");
  17. }
  18.  

Saluditos! .... ..
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
PHP y funciones tcp/ip « 1 2 »
PHP
nacho2003 11 7,551 Último mensaje 21 Septiembre 2006, 00:07 am
por deya
Funciones en php
PHP
Lambda 2 2,561 Último mensaje 14 Octubre 2006, 17:00 pm
por Thaorius
funciones y FOR
PHP
pepelon 4 2,276 Último mensaje 9 Diciembre 2006, 02:49 am
por pepelon
[C] Problema con Struct en funciones que llaman a otras funciones
Programación C/C++
‭lipman 9 23,636 Último mensaje 19 Mayo 2011, 23:39 pm
por Littlehorse
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines