No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Tipo de dato void

9/16
Recursos

Aportes 51

Preguntas 9

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Recomendaci贸n para el equipo de Platzi

Esta explicaci贸n podr铆a estar unas clases m谩s adelante, para que las personas que a煤n no saben que es una funci贸n, una variable, qu茅 son par谩metros, qu茅 son argumentos, etc. puedan contextualizar el uso de void.

Al ser un curso introductorio, hay que partir de la base de que algunas personas no tienen conocimiento previo en programaci贸n, por lo cual podr铆an confundirse.

Al Void tambi茅n se la conoce como palabra reservada de no atribuci贸n, la cu谩l no retorna valores, pero no debemos asociarla con NULL que es totalmente diferente.

void: No hay valor disponible

    Funci贸n que no retorna nada.
    void funcion()

    Funci贸n con argumentos/parametros vacios
    int funcion(void)

    Puntero o apuntador. Va a la direcci贸n de un objeto pero no le importa el tipo de dato que tenga el objeto.
<

Les recomiendo este articulo Data Types in C

Void : Especifica que no hay valor disponible y se usa en 3 escenarios

1.-Funcion retorna un tipo de datos void
Void Function()
2.- Funcion tiene argumentos de tipo void
Int random(void)
3.-Puntero o apuntador que va a la direccion en memoria de un objeto pero no le importa el tipo de dato que tenga

una explicacion de apuntadores con manzanitas jaja super buena
https://platzi.com/clases/1740-lenguaje-c-2019/24212-punteros/

VOID 1. Funci贸n que no retorna valor.
Podemos usar el ejemplo del hello world y modificarlo un poco.
En este caso cambie el tipo de dato de la funci贸n de int a void y elimine el return ya que al ser tipo de datos void no vamos a retornar nada, lo ejecute y funciona correctamente.

void = vacio no toma ning煤n valor y no retorna ning煤n valor. A menos que sea un puntero pero de eso no hay que preocuparse asta ver memoria din谩mica ahi podran romper codigo al gusto XD

void : Especifica que no hay valor disponible, se usa en 3 escenarios
    1. - Funci贸n retorna un tipo de datos void
        void funcion()
    2.- Funci贸n que tiene argumentos de tipo void
        int rand(void)
    3. - Puntero o apuntador que va a la direcci贸n en memoria
        de un objeto, pero no le importa el tipo de dato que tenga.

me esta ayudando mucho este curso para una materia donde programamos en C

  • void: Especifica que no hay valor disponible, se usa en tres escenarios
    • Funci贸n retorna un tipo de dato void: void foo(){}
    • Funci贸n tiene argumento(s) de tipo void: int foo(void){}
    • Puntero hacia una direcci贸n en memoria de un objeto, sin importar su tipo dato.
#include <stdio.h>

// Funci贸n que no devuelve ning煤n valor (void)
void saludar() {
    printf("隆Hola! Esta es una funci贸n que saluda.\n");
}

// Funci贸n que toma un entero como argumento y no devuelve valor (void)
void cuadrado(int num) {
    printf("El cuadrado de %d es %d.\n", num, num * num);
}

int main() {
    // Llamada a la funci贸n que no devuelve valor (void)
    saludar();

    int numero = 5;

    // Llamada a la funci贸n que toma un argumento y no devuelve valor (void)
    cuadrado(numero);

    return 0;
}

Excelente clase, ya tome nota de esta clase.

El curso va bien, pero quiz谩s esta clase est谩 un poco m谩s avanzada para nuevos estudiantes, aunque el profe explica bien y va a buen ritmo, toca buscar un poco por fuera.

Ya comete la maldit* naranja y empieza a correr programas.

Tipo de dato void:
Palabra clave especifica que la funci贸n no devuelve un valor.
Este tipo de datos puede ser usado en 3 escenario:
Funci贸n retorna un tipo de datos void: que cuando se ejecuta esta funci贸n no retorna ninguna valor, ya que su uso es para variables dentro de la funci贸n o cambiar valores de alg煤n dato.
Funci贸n tiene argumento de tipo void: habr谩 funciones que no acepta par谩metros, esta debe tener el dato void adentro.
**_Puntero o apuntado: _**que va a la direcci贸n en memoria de un objeto, pero no le importa el tipo de dato que tenga, en pocas palabras puedes acceder en memoria sin importar el tipo de dato.
esto seria de forma resumida la clase :v

Basic Types:

  • Aritmeticos:
    • (A) Valores enteros:

      • int: 2 o 4 Bytes permite tener numeros negativos y positivos

        • 2 Bytes -32,768 to 32,757
        • 4 bytes -2,147,483,648 to 2,147,483
        • unsigned int 2 o 4 bytes no nos permite tener datos negativos
          • 2 Bytes 0 to 65.535
          • 4 bytes 0 to 4,294,967,295
      • short 2 Bytes

        • 2 Bytes -32,768 to 32,767
        • unsigned short 2 Bytes 0 yo 65,535
      • long 8 Bytes

        • long 8 bytes -9223372036854775808 to 9223372036854775807
        • unsigned long 8 Bytes 0 to 18446744073709551615
    • (B) De punto FLorante:

      • float 4 Bytes 1.2E-38 to 3.4E+386 ( 6 decimal places)
      • double 8 Bytes 2.3E-308 to1.7E+30815 (15 decimal places)
      • long double 10 Bytes 3.4E-4932 to 1.1E+493219 (19 decimal places)

en cada clase se aprende algo nuevo.

gracias profe

El tipo de dato void en C es un tipo especial que se utiliza para indicar la ausencia de tipo o la falta de informaci贸n. A diferencia de otros tipos de datos en C, void no tiene un tama帽o espec铆fico ni puede almacenar ning煤n valor. Se utiliza en las siguientes situaciones:

Funciones sin valor de retorno: Puedes declarar funciones con tipo de retorno void para indicar que no devuelven ning煤n valor. Por ejemplo:

c
Copy code
void saludar() {
printf(鈥淗ola, mundo!\n鈥);
}
La funci贸n saludar() no devuelve ning煤n valor, simplemente imprime un saludo en la pantalla.

Punteros gen茅ricos: Los punteros void * se utilizan para crear punteros gen茅ricos en C. Un puntero void * puede apuntar a cualquier tipo de dato, ya que no tiene informaci贸n sobre el tipo de dato subyacente. Esto permite una mayor flexibilidad en la manipulaci贸n de punteros. Sin embargo, para utilizar o manipular los datos apuntados por un puntero void *, es necesario convertirlo expl铆citamente al tipo de dato correcto.

c
Copy code
void imprimir(void *ptr) {
int *entero_ptr = (int *)ptr;
printf(鈥淓l entero es: %d\n鈥, *entero_ptr);
}
En este ejemplo, la funci贸n imprimir() recibe un puntero void * y lo convierte a un puntero int * antes de imprimir el valor entero apuntado.

Muy aclaratoria la clase

Al llamar a una funci贸n se puede hacer por valor o por referencia.

  • Por valor: Se copia el contenido del argumento al par谩metro de la funci贸n. Si se producen cambios en el par谩metro esto no afecto los argumentos. C utiliza esta llamada por defecto.

  • Por referencia: Lo que se pasa a la funci贸n es la direcci贸n de memoria del argumento. Si se producen cambios, afectan el argumento.

  • En resumen: Una funci贸n por valor se copia el cotenido del argumento, cuando se termina la funci贸n, los cambios no son guardados.
    Una funci贸n por referencia se pasa la direcci贸n en memoria del argumento. Si se produce un cambio este si se guarda, en memoria.

Cuando se declara una funci贸n es necesario informarle al compilador el tama帽o de los valores que se le enviar谩n y el tama帽o que retrona. En caso de no indicar el valo devuelto toma por defecto el valor int.

Funci贸n Es el termino para describiruna secuencia de 贸rdenes que hacen una tara especifica.

Caracteristicas de las funciones

  • Tienen un nombre 煤nico con el que se identifican y distinguen la funci贸n.

  • Tienen un valor que la funcion va a devolver al terminar la ejecuci贸n.

  • Tiene una lista de par谩metros que la funci贸n debe recibir para realizar su tarea.

  • Un conjunto de 贸rdenes o sentencias que deben ejecutar la funci贸n.

Los 3 escenarios en los que se utiliza el tipo de dato void.

  1. Funci贸n para retornar un tipo de dato void. Cuando no necesariamente se requiere que la funci贸n regrese un valor.
  2. Funci贸n que tiene argumento de tipo void. Para funciones que no acepta nignun parametro, por lo que debe tener un void adentro. Ej.
int rand(void)
  1. Punetro o apuntador. Cuando se apunta a un a direcci贸n en memoria, pero no te importa lo que tenga ese tipo de datos. Tambien es util para hacer casteos, es decir transformar un tipo de deta de entrada en un otro tipo de dato de salida diferente.

Cast o casteo es transformar un tipo de dato a otro tipo

Cast o casteo es transformar un tipo de dato de entrada en otro tipo de dato de salida diferente. Ejemplo pasar un entero (int) a un decimal o flotante (float) o viceversa.

Tipo de dato void: Especifica que no hay valor disponible. Se usa en 3 escenarios. 1. Funci贸n retorna un tipo de dato void. Al ejecutar la funci贸n no devulve nignun valor. Muchas veces se configura variables dentro de la funci贸n, pero no necesariamete requiere que la funci贸n regrese un resultado. 2. Funci贸n tiene argumentos de tipo void. Funciones que no acepta nignun parametro. Por lo que debe tener void adentro. 3. Puntero o apuntodaro que va a la direcci贸n en memoria de un objeto en la memoria f铆sica de la computadora, pero no le importa el tipo de dato que tenga. Se puede apuntar a la direcci贸n en memoria para obtener un dato, pero no necesariamente va a ser capaz de indicar el tipo de dato que vas a estar trabajando. Si le pones el puntero void no te va a importar el tipo de dato que tenga esa informaci贸n en la memoria, para hacer un casteo.

Todo esto que estoy aprendiendo no conoc铆a nada ahora me doy una idea de que todo tiene su l贸gica.

Tremendo el tipo de dato Void

interesante la manera de dato void, pensar que la gran mayoria de funciones para arduino se declaran vooid

<Dato void
    void : Especif铆ca que no hay valor disponible, se usa en tres ecenarios
        1.- Funci贸n que retorna tipo de datos void
            void funcion()
        2.- Funci贸n tiene argumentos de tipo void
            int rand(void)
        3.- Puntero o apuntador que va a la direcci贸n en memoria de un objeto, pero no  le importa el tipo de dato que tenga> 

Los datos de tipo void son usados en 3 escenarios:

  1. Al ejecutar una funci贸n y que esta no retorne ning煤n valor.
  2. Se puede colocar un void a dentro de la funci贸n, generando que no se acepte ning煤n par谩metro. Ej: int rand(void)
  3. Se puede apuntar a una direcci贸n de memoria para obtener un dato, pero no necesariamente se va a ser capaz que diga cual es el topo de datos que se va a estar trabajando.
  • En C se puede acceder a la memoria, apuntando a una direcci贸n espec铆fica.

En realidad la funci贸n main s铆 puede ser de tipo void, simplemente no le pondr铆amos un return y listo. Pero hay compiladores que marcar铆an esto como un warning ya que se considera mala pr谩ctica.

Mala practica != no se puede.

Void en realidad especifica 鈥渘ulo鈥 no es lo mismo nulo que 鈥渘o hay dato鈥 a veces vamos a tener necesidad de comparar si un dato es nulo y con esta explicaci贸n se confunde el t茅rmino.

La palabra reservada void define en C++ el concepto de no existencia o no atribuci贸n de un tipo en una variable o declaraci贸n. Es decir, una funci贸n declarada como void no devolver谩 ning煤n valor. 鈥 Sin embargo, la forma especial void * indica que el tipo de datos es un puntero.

Perfecta esta clase

Solo demos recordar para futuras clases que VOID =/ NUll no son lo mismo.

Cuando se entra a jugar con la memoria es cuando se pone interesante, jaja, pasan cosas super raras

驴 Hola, me tope con el siguiente error ?

" Se han detectado errores de #include. Actualice el valor de includePath. El subrayado ondulado est谩 deshabilitado para esta unidad de traducci贸n "

Y as铆 lo solucione, espero les ayude en el futuro

Una manera de solucionarlo fue abriendo la ruta donde de se encontraba el 鈥渁rchivo.c鈥 desde el panel lateral izquierdo de visual estudio code. Luego lo que hice fue presionar sobre el foco amarrillo de la alerta de error e instalar las sugerencias que me recomendaba el editor, y listo. Problema solucionado.

Se me creo una carpeta de nombre 鈥渃_cpp_properties.json鈥 en la ruta donde tenia el codigo.

驴Alguien me puede explicar el tercer caso del puntero? Se lo agaredezco

驴Por qu猫 main es de tipo entero y se tiene que cerrar con un return 0?

Punteros void. Casteo.

Gracias!

Wow!

No sabia lo del casteo

Me gusto y sirvi贸 mucho para comprender mejor esta otra explicacion.

Excelente info hasta el momento, vamos por mas!!