Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1477 connectés 

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

Type de renvoi d'une fonction

n°389292
Kristoph
Posté le 10-05-2003 à 19:29:35  profilanswer
 

Reprise du message précédent :
Moi, je pense tout simplement qu'il n'a pas déclaré sa fonction au moment ou il l'appelle mais bon, c'est tout ce que je vois comme ça avec si peut de code :D

mood
Publicité
Posté le 10-05-2003 à 19:29:35  profilanswer
 

n°389296
Taz
bisounours-codeur
Posté le 10-05-2003 à 19:39:52  profilanswer
 

xav14 a écrit :

depuis quand l'allocation de structure avec un = marche en C ?

depuis la norme ANSI

n°389356
xav14
Posté le 10-05-2003 à 21:00:03  profilanswer
 

:heink:
 
je teste ca tout de suite  :o
...
 
arf j'ai du confondre avec un autre langage  [:proy].
 
n'empêche sa solution d'appel a la fonction et de recuperation du resultat ne m'est pas du tout naturel. j'ai plutot l'habitude de passer les entrées en variables et les sorties en pointeurs; ex:
 
int nom_fonction (int source1, int source2, int *cible);
 
la valeur de retour servant au debug.


Message édité par xav14 le 10-05-2003 à 21:00:40
n°389507
theshockwa​ve
I work at a firm named Koslow
Posté le 11-05-2003 à 00:14:58  profilanswer
 

xav14 a écrit :

la valeur de retour servant au debug.


 
Servir au Debug, c'est bien ... Servir à tester les échecs même en version Release, c'est mieux ...
 
(Edit : allégé la citation ...)


Message édité par theshockwave le 11-05-2003 à 00:16:02

---------------
last.fm
n°389548
xav14
Posté le 11-05-2003 à 03:52:15  profilanswer
 

theShOcKwAvE a écrit :


 
Servir au Debug, c'est bien ... Servir à tester les échecs même en version Release, c'est mieux ...
 
(Edit : allégé la citation ...)


 
j'ma gourré :o
 
en fait je trouve la norme ansi c super bien foutue et j'essaye de faire des fonctions aussi bien foutues que celles de la norme.

n°389977
livevil
Let the bassline getcha...
Posté le 11-05-2003 à 23:25:12  profilanswer
 

En fait, j'utilise pour l'instant coord_final passe en tant qu'argument dans la fonction. C'est comme ca que je fais d'habitude.
Le truc c'est que ca me faciliterait un peu la tache dans la suite du programme car je vais avoir besoin de pas mal de ces "coord_final". Donc je voulais pouvoir par la suite passer cette fonction en argument dans d'autres fonctions.
 
Kristoph >"mal declarer sa fonction" dans quel sens ?


---------------
Beauty is in the eye of the beer holder ...
n°389980
Taz
bisounours-codeur
Posté le 11-05-2003 à 23:32:11  profilanswer
 

tu voudrais pas tout reprendre du début, c'est à dire donner ton code et ton problème?


Message édité par Taz le 11-05-2003 à 23:32:25
n°389981
livevil
Let the bassline getcha...
Posté le 11-05-2003 à 23:34:20  profilanswer
 

Je ferai ca demain. J'ai pas le code ici (je suis chez moi)...


---------------
Beauty is in the eye of the beer holder ...
n°390099
livevil
Let the bassline getcha...
Posté le 12-05-2003 à 10:33:24  profilanswer
 

Edit du premier post....

n°390120
Taz
bisounours-codeur
Posté le 12-05-2003 à 10:48:51  profilanswer
 

Code :
  1. typedef struct
  2. {
  3.   int x;
  4.   double g;
  5. } Foo;
  6. Foo zero()
  7. {
  8.   Foo f={0, 0.0};
  9.   return f;
  10. }
  11. int main()
  12. {
  13.   Foo a=zero();
  14.   return 0;
  15. }

ça compile chez toi?

mood
Publicité
Posté le 12-05-2003 à 10:48:51  profilanswer
 

n°390132
livevil
Let the bassline getcha...
Posté le 12-05-2003 à 10:55:54  profilanswer
 

oui

n°390175
Taz
bisounours-codeur
Posté le 12-05-2003 à 11:21:48  profilanswer
 

ben alors le problème vient aps de cette ligne...t'as que ça comme erreur? est ce que les définitions sont bien placées? si elles ne le sont aps le compilateur ramènera le type par défau à int.

n°390205
livevil
Let the bassline getcha...
Posté le 12-05-2003 à 11:32:44  profilanswer
 

OK. Je pense qu'elles sont bien placees, mais je peux me tomper.
Comme je l'ai dit, je suis loin d'etre programmeur. Les definitions des types
sont dans un fichier header du meme nom que la partie principale du prog  
(autodcp.c et autodcp.h). Dans autodcp, j'ai declare tous les autres headers
utilises :
 
#include "autodcp.h"
#include "dcp_mat.h"
#include "dcp_func.h"
#include "dcp_file.h"
#include "dcp_str.h"
 
calculate_interactions est dans dcp_files.c et apply_matrix dans
dcp_func.c
Si j'ai fait plein de conneries, pas tapper SVP...

n°390242
Kristoph
Posté le 12-05-2003 à 12:00:56  profilanswer
 

Code :
  1. typedef struct
  2. {
  3.   int x;
  4.   double g;
  5. } Foo;
  6. int main()
  7. {
  8.   Foo a=zero();
  9.   return 0;
  10. }
  11. Foo zero()
  12. {
  13.   Foo f={0, 0.0};
  14.   return f;
  15. }

Et ce code la, il fait quoi comme message d'erreur ?

n°390294
livevil
Let the bassline getcha...
Posté le 12-05-2003 à 12:42:54  profilanswer
 

La, j'ai des erreurs :
 
cc-1140 cc: ERROR File = foo.c, Line = 12
  A value of type "int" cannot be used to initialize an entity of type "Foo".
 
                            Foo a=zero();  
                                  ^
 
cc-1174 cc: WARNING File = foo.c, Line = 12
  The variable "a" was declared but never referenced.
 
                            Foo a=zero();  
                                ^
 
cc-1153 cc: ERROR File = foo.c, Line = 17
  Declaration is incompatible with previous "zero" (declared at line 12).
 
                        Foo zero()  
                            ^
 
2 errors detected in the compilation of "foo.c".
 
Donc ca viendrait de ma fonction qui n'est pas declaree avant ?

n°390298
Taz
bisounours-codeur
Posté le 12-05-2003 à 12:45:24  profilanswer
 

oui,t'as un problème dans l'odre de tes déclarations

n°390318
livevil
Let the bassline getcha...
Posté le 12-05-2003 à 12:57:01  profilanswer
 

OK, je viens de redeclarer la fonction au debut de dcp_file.c  
et ca a l'air de marcher. Pourquoi si je mets la declaration dans
dcp_file.h ca ne marche pas? (desole si je pose des questions connes)
 

n°390329
Taz
bisounours-codeur
Posté le 12-05-2003 à 13:03:15  profilanswer
 

ben si tu nous montre pas le fichier :whistle:  
 
t'as pas moyen de lire la doc de ton compilo pour qu'il t'affiche un maximum d'avertissement?

n°390359
livevil
Let the bassline getcha...
Posté le 12-05-2003 à 13:47:52  profilanswer
 

La doc est sous forme de "man pages", c'est un peu lourd a consulter.
Sinon en mettant en "fullwarning", j'ai pas mal de messages qui
disent "The indicated function is declared implicitly".
Je suppose que ca veut dire que ma fonction n'est pas "bien" declaree, non ?
 
Malheureusement, je n'ai pas assez de connaissances en c pour ecrire
du bon code. Mais j'essaie d'apprendre au fur et a mesure.
 
Sinon j'ai construit mon programme de la facon suivante : un fichier
principal (ex principal.c) et son header (principal.h) qui contient
tous les typedef.
Les fonctions utilisees sont definies dans plusieurs fichiers (ex 1.c, 2.c, etc)
et leurs headers (1.h, 2.h etc) contiennent qq declarations de fonctions
utilisees.
principal.c contient au depart
#include <principal.h>
#include <1.h>
#include <2.h>
etc...
 
et 1.c de meme (include des fichiers dont les fonctions sont utilisees)
Je pensais que de cette maniere, toutes les fonctions etaient declarees
de n'importe quel endroit d'ou elles sont appelees.
 
Desole si ce n'est pas tres clair... Mais de toutes facons je me debrouillerai
bien avec mon code de barbare :D

n°390584
xav14
Posté le 12-05-2003 à 15:50:43  profilanswer
 

dans le .h tu dois mettre aussi les prototypes des fonctions pour justement ne pas avoir de fonctions declarées après leur utilisation.

n°390592
livevil
Let the bassline getcha...
Posté le 12-05-2003 à 15:59:15  profilanswer
 

En fait, vu que ca passait comme ca,je pensais que mes fonctions
etaient declarees et definies en meme temps. Donc je dois toutes les
declarer de toutes facons... :jap:

n°390693
Taz
bisounours-codeur
Posté le 12-05-2003 à 16:55:27  profilanswer
 

ben justement, le problème c'est que si elles sont implicitements déclarées, leur type de retour est mis à int

n°390716
livevil
Let the bassline getcha...
Posté le 12-05-2003 à 17:08:29  profilanswer
 

OK, je comprends mieux. Mais est-ce que je dois vraiment declarer
toutes les fonctions de type void par exemple ? (je veux dire est-ce  
qu'il est d'usage de tout declarer, par exemple pour la portabilite
 du code)

n°390722
Kristoph
Posté le 12-05-2003 à 17:12:25  profilanswer
 

livevil a *crit :

OK, je comprends mieux. Mais est-ce que je dois vraiment declarer
toutes les fonctions de type void par exemple ? (je veux dire est-ce  
qu'il est d'usage de tout declarer, par exemple pour la portabilite
 du code)


 
Il faut declarer *toutes* les fonctions avant utilisation. Et tant qu'a faire, autant les declarer aussi avant leur definition. Cela reviens a faire une ligne de plus par fonction dans tes fichier .h ( on se demande bien a quoi ils peuvent te servir actuellement :D )

n°390734
livevil
Let the bassline getcha...
Posté le 12-05-2003 à 17:22:05  profilanswer
 

Heuuu..... Ben a declarer les fonctions :whistle: enfin maintenant
quoi :D
Comme ca marchait, je ne me suis pas trop pose la question, c'est
vrai. Je vais corriger ca...

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

Sujets relatifs
Ptite question sur la fonction switch :)probleme avec la fonction shell_exec()
SQLServer : procedure stockée ou fonctionProblème vec la fonction mail....
[php] comment rerouter les mail envoyés par la fonction mail de php?Y a t-il moyen de proteger les attributs d'une classe (type private) ?
[Validation] document type does not allow element "ul" ???Que renvoi la commande ftp LIST à mon BufferedReader ?
Taille d'une variable de type "WORD"[php] appeler une fonction dans une regexp ou un truc du genre :d
Plus de sujets relatifs à : Type de renvoi d'une fonction


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR