¿Podemos definir funciones en estructuras en lenguaje de programación C?Definir funciones en estructuras
Respuesta
No, ya que las funciones no son datos. Pero puede definir punteros de función dentro de una estructura.
struct foo {
int a;
void (*workwithit)(struct foo *);
}
Nº
Usted puede tener punteros a funciones en estructuras, pero eso es lo más cerca que se obtiene.
No, no puede. Las estructuras solo pueden contener variables en el interior, el almacenamiento de punteros de función dentro de la estructura puede darte el resultado deseado.
Sin, Usted no puede definir funciones dentro de las estructuras de los programas en C, Sin embargo, si la extensión del archivo es .cpp (que no es C), puede tener funciones miembro como clases sin embargo, el modificador por defecto de éstos las funciones serán 'públicas' (a diferencia de la clase).
Lea estos enlaces para obtener más información sobre las estructuras a good link, another good link, One more good link
Como convención en C++, Clases se utilizan para Guardando funciones y variables tanto y Estructuras se utilizan únicamente para conservar información (es decir, datos).
Lo que probablemente quiso decir es: "Sin embargo, si compila esto en un lenguaje de programación diferente llamado C++ ..." – Lundin
Tienes razón @Lundin, en realidad en el nivel inicial, pocos estudiantes se confunden escribiendo el código C dentro del archivo .cpp, eso es realmente una mala práctica. – aProgrammer
Realmente no se puede declarar cosas dentro de una estructura en C. Esto no es C++ o cualquier otro lenguaje OO donde un objeto encapsula algún tipo de ámbito.
Las estructuras C son objetos muy simples, es solo azúcar sintáctico para administrar una pieza de memoria. Cuando crea una nueva "instancia" de estructura, struct A a;
, el compilador solo reserva el espacio de pila de acuerdo con su tamaño, y cuando hace a.member
, el compilador conoce el desplazamiento de ese miembro, por lo que salta a &a
+ desplazamiento de ese miembro. Esas compensaciones generalmente no son solo sumas de tamaños de miembros anteriores, porque el compilador normalmente agrega algunos bits de relleno en la estructura para alinearlo mejor en la memoria.
Espero que haya ayudado un poco. Obviamente, espera demasiado de las estructuras C :-)
No, no puede tener funciones dentro de struct en un programa C. Escribí un código único y lo guardé como .c y .cpp. El archivo .cpp cumple y funciona como se esperaba, pero el archivo .c ni siquiera se compila.
Aquí está el código para su referencia. Guárdelo una vez como .cpp y luego ejecútelo. A continuación, guarde el mismo código que .c y compílelo. Obtendrás un error de compilación.
#include <stdio.h>
struct C {
void Test(int value) {
static int var = 0;
if (var == value)
printf("var == value\n");
else
printf("var != value\n");
var = value;
}
};
int main() {
C c1;
C c2;
c1.Test(100);
c2.Test(100);
int ii;
scanf("%d",&ii);
}
Dado que cuando no es posible tener ** funciones ** dentro ** C ** program? – baldrs
Quise decir. Struct en el programa de ca. Corregirá –
Se corrigió. Gracias. –
No, pero puedes en C++ struct!
Así que respondí su pregunta con "No," ¿Te perdiste esa parte? – NDEthos
Sí, puede declarar la función dentro de la estructura, consulte el siguiente fragmento.
#include<stdio.h>
struct A
{
int a;
void (*ptr)(const struct A*);
};
void display(const struct A*p)
{
//p->a = 10; //It is not possible because structure is constant
printf("Display fun :%d\n",p->a);
}
void print(struct A*ptr)
{
ptr->a = 20;
printf("Print fun :%d\n",ptr->a);
}
int main()
{
struct A obj = {5}; //Structure initialization
display(&obj);
print(&obj);
return 0;
}
- 1. Python definir funciones dinámicas
- 2. Pasar punteros/referencias a estructuras en funciones
- 3. Cómo definir funciones globales en PHP
- 4. Uso de macros en C para definir estructuras de datos
- 5. ¿Definir estructuras autorreferenciales en un archivo de encabezado C (.h)?
- 6. let vs letfn para definir funciones locales en clojure?
- 7. ¿Por qué no puedo definir funciones en document.ready() de jQuery?
- 8. ¿Es válido para definir funciones en los resultados JSON?
- 9. ¿Dónde debería definir las funciones globales en ExtJS 4 MVC?
- 10. Cómo definir las funciones miembro 'final' para una clase
- 11. ¿Por qué puedo definir estructuras y clases dentro de una función en C++?
- 12. ¿Es posible definir una matriz de estructuras u objetos en VBA?
- 13. Funciones en la estructura
- 14. Estructuras de datos en lisp
- 15. Estructuras en Javascript
- 16. estructuras Inicialización en C++
- 17. Estructuras mundiales dispersas en Erlang
- 18. C++ Estructuras Privadas
- 19. C# gestión de cadenas en las estructuras
- 20. Estructuras anidadas
- 21. Definir una variable en una clase y usarla en las funciones
- 22. Estructuras de datos pregunta
- 23. Creando estructuras C en Cython
- 24. Constructor para estructuras en C
- 25. Matriz de estructuras en C
- 26. Estructuras vs clases en C++
- 27. Estructuras de datos en Python
- 28. matriz de estructuras en C#
- 29. analizando estructuras recursivas en scala
- 30. Funciones compuestas en ocaml
Bueno, esto es parte de internet, así que ... – Jon
¿Quiere decir algo así como struct A {f (void) {...}}; ? – tchap