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 10

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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: 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.
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.

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

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

#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(“Hola, 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(“El 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 “nulo” no es lo mismo nulo que “no 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 “archivo.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 “c_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!!