Pages : 1
#1 Le 25/01/2007, à 11:28
- DanYellow
Déclarer une structure en C
Bonjour!
Je développe mon application en c SOUS LINUX et je souhaiterais utiliser mes fonction un peu comme si c'était de l'orienté objet, pour satisfaire à une modélisation UML, d'après mon prof d'info il faut les déclater dans une structure et ça me permettrait des les utiliser en faisant "nom_struct.nom_fonction();" Mais je ne sais pas comment déclarer des structures, pouvez vous m'expliquer ou me donner un petit exemple?
Merci d'avance et bonne journée!
Hors ligne
#2 Le 25/01/2007, à 11:38
- jobherzt
Re : Déclarer une structure en C
delcarer des tructures se fait grace a "struct", mais je ne savais pas qu'on pouvait mettres des fonctions dans une struct...
Hors ligne
#3 Le 25/01/2007, à 11:43
- DanYellow
Re : Déclarer une structure en C
Merci de votre réponse, c'est aussi ce que j'ai trouver à l'aide de google, et justement le fait que les sites ne traîtent pas de la possibilité de mettre du code dans une structure, me gêne un peu.
Hors ligne
#4 Le 25/01/2007, à 11:49
- iuchiban
Re : Déclarer une structure en C
http://c.developpez.com/sources/c/?page=IV
Sur developpez.com, tu trouves des sources pour tous les langages de programmation.
C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.
Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.
Hors ligne
#5 Le 25/01/2007, à 11:50
- jobherzt
Re : Déclarer une structure en C
en fait, dans l'absolu, les fonctions sont des objets comme les autreS. on peut declarer des variables du type (fonction int a 2 parametres) par exemple. c'est peut etre de cela qu'il s'agit. mais tu ne pourras pas comme dans une classe acceder aux propriétée de la structure directement..
Hors ligne
#6 Le 25/01/2007, à 11:55
- iuchiban
Re : Déclarer une structure en C
Oula ca me fait remonter 4 ans en arriere pour mes derniers cours de C.
En fait une structure en C c'est juste un tableau évolué dans lequel tu peux mettre plusieurs types de données, alors qu'un tableau c'est que des int, des char, ...
Mais tu ne peux pas mettre de code.
Par contre l'appel de fonction strucutre.fonction() c'est en C++ il me semble.
C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.
Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.
Hors ligne
#7 Le 25/01/2007, à 12:10
- Nop
Re : Déclarer une structure en C
De manière général rien ne vaut un petit exemple. C'est du C++ mais je suppose que ca doit marcher en C.
struct node {
unsigned int id;
node():id(UINT_MAX){}
node(unsigned int j):id(j){}
bool isValid() const {return id!=UINT_MAX;}
};
#8 Le 25/01/2007, à 12:23
- qqun
Re : Déclarer une structure en C
il existe un tres bon livre sur la programmation en C ,
"methodologie de la programmation en c" de Jean-Pierre BRAQUELAIRE.
les sources des programmes exemples de ce livre sont recuperables ici.
http://dept-info.labri.fr/~achille/MPC-3/2T/
et le chapitre 8 aborde l'implentation d'une classe en C.
sinon tu peux utiliser des pointeurs de fonctions dans les structures .
#include <stdio.h>
typedef struct mystruct {
int (*pointeur_fonc1)(int, int);
int (*pointeur_fonc2)(int, int);
} mystruct;
int plus(int a, int b)
{
return a + b;
}
int fois(int a, int b)
{
return a * b;
}
int main()
{
int a = 2;
int b = 1;
mystruct test;
test.pointeur_fonc1 = +
test.pointeur_fonc2 = &fois;
printf("%d \n", (*test.pointeur_fonc1)(a, b) );
printf("%d \n", (*test.pointeur_fonc2)(a, b) );
return 0;
}
#9 Le 25/01/2007, à 12:27
- Nop
Re : Déclarer une structure en C
Ah... désolé visiblement c'est plus compliqué en C qu'en C++ (ca aurait ete trop beau et c'est vrai étonnant aussi).
#10 Le 25/01/2007, à 13:02
- DanYellow
Re : Déclarer une structure en C
Je remercie chacun d'entre vous pour votre aide, en effet avec des exemples ça devrait aller mieux, logiquement de simple fonction m'auraient suffit, mais pour avoir un sans blanc de modélisation UML de mon projet, mon prof ma suggérer d'utiliser des structures, un peu comme si c'était des classes.
Hors ligne
Pages : 1