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

  FORUM HardWare.fr
  Programmation
  C

  C'est quoi cette declaration C ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

C'est quoi cette declaration C ?

n°819486
joce
Architecte / Développeur principal
"BugHunter"
Posté le 10-08-2004 à 19:00:01  profilanswer
 

void gaim_perl_callXS(void (*subaddr)(pTHX_ CV *cv), CV *cv, SV **mark);  
 
le pTHX_ CV *cv :??:
 
en tout cas le compilo gcc 2.95.4 n'aime pas du tout cette syntaxe, ca correspond a quoi :??:

mood
Publicité
Posté le 10-08-2004 à 19:00:01  profilanswer
 

n°819491
cris56
Posté le 10-08-2004 à 19:04:05  profilanswer
 

subaddr est un pointeur sur une fonction, c'est ce que tu voulais savoir  ?

n°819492
Taz
bisounours-codeur
Posté le 10-08-2004 à 19:04:10  profilanswer
 

un pointeur de fonction :o
 
void fonction(pTHX_ CV *cv);
 
 
en gros, c'est un callback

n°819495
alien cons​piracy
hardtrance addict
Posté le 10-08-2004 à 19:05:52  profilanswer
 

Joce qui tiens à débugguer chaque programme qui lui passe entre les mains. :D

n°819498
Taz
bisounours-codeur
Posté le 10-08-2004 à 19:09:52  profilanswer
 

les pointeurs de fonctions ont cela de marrant que  
 
*f == f donc   f() == *************************f()

n°819509
joce
Architecte / Développeur principal
"BugHunter"
Posté le 10-08-2004 à 19:30:48  profilanswer
 

ceci dit je comprends toujours pas la syntaxe de la déclaration :D

n°819525
Taz
bisounours-codeur
Posté le 10-08-2004 à 19:41:07  profilanswer
 


// ici déclaration de fonction
void   fonction  (pTHX_ CV *cv);  
 
// là un pointeur (une variable)
void (*fonction) (pTHX_ CV *cv);


 
me dis pas que tu as jamais utilisé qsort ?


Message édité par Taz le 10-08-2004 à 19:42:02
n°819545
joce
Architecte / Développeur principal
"BugHunter"
Posté le 10-08-2004 à 20:13:59  profilanswer
 

si j'ai déjà vu qsort.
 
ca m'aide pas plus ton truc :/
le pTHX_ CV *cv il signifie quoi en pratique :??:
cv est de quel type :??:

n°819546
Taz
bisounours-codeur
Posté le 10-08-2004 à 20:15:26  profilanswer
 

je sais pas c'est juste que c'est un pointeur de fonction retournant void et acceptant en paramètre un pointeur (ici argument nommé cv), pointeur sur pTHX_CV

n°819551
joce
Architecte / Développeur principal
"BugHunter"
Posté le 10-08-2004 à 20:21:00  profilanswer
 

ce qui m'ennuie c'est l'espace entre pTHX_ et CV en fait, c'est ca que je capte pas depuis le debut, pour le reste les pointeurs sur fonction je connais :o


Message édité par joce le 10-08-2004 à 20:21:33
mood
Publicité
Posté le 10-08-2004 à 20:21:00  profilanswer
 

n°819555
Taz
bisounours-codeur
Posté le 10-08-2004 à 20:22:59  profilanswer
 

merde j'avais pas vu :/
 
gcc -E  
 
y a fort a parier que CV est une macro de const

n°819559
el muchach​o
Comfortably Numb
Posté le 10-08-2004 à 20:25:21  profilanswer
 

Le code de Perl est bourré de macros.


Message édité par el muchacho le 10-08-2004 à 20:26:31

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°819561
joce
Architecte / Développeur principal
"BugHunter"
Posté le 10-08-2004 à 20:25:49  profilanswer
 

j'avais pensé aussi à une macro, mais j'en avais pas vu la trace, j'ai du la louper.
 
En tout cas gcc n'était pas content du tout :
 
In file included from perl.c:93:
perl-common.h:28: parse error before `CV'
perl.c:214: parse error before `CV'
perl.c: In function `gaim_perl_callXS':
perl.c:219: `aTHX_' undeclared (first use in this function)
perl.c:219: (Each undeclared identifier is reported only once
perl.c:219: for each function it appears in.)
perl.c:219: parse error before `cv'
perl.c: In function `destroy_package':
perl.c:403: warning: passing arg 1 of `Perl_newSVpv' discards qualifiers from pointer target type
gmake[3]: *** [perl.lo] Error 1
gmake[3]: Leaving directory `/home/fournier/gaim/gaim-0.81/plugins/perl'
gmake[2]: *** [all-recursive] Error 1
gmake[2]: Leaving directory `/home/fournier/gaim/gaim-0.81/plugins'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/home/fournier/gaim/gaim-0.81'
gmake: *** [all] Error 2
 

n°819562
joce
Architecte / Développeur principal
"BugHunter"
Posté le 10-08-2004 à 20:26:39  profilanswer
 

el muchacho a écrit :

gaim_perl_callXS est une fonction qui accepte en argument :
 - un pointeur de fonction qui elle-même accepte en argumant un pointeur de type pTHX_ CV et ne retourne rien,  
 - un pointeur de type CV,
 - un pointeur de pointeur (un handle) de type SV.
 
C'est tout simple ! :)
 
Il me semble qu'il existe depuis longtemps un petit programme qui permet d'écrire en clair les déclarations C les plus obscures. Je ne me souviens plus de son nom malheureusement. Un truc comme cdeclare.


 
ca te choque pas un type "pTHX_ CV" toi ? :D moi si :o


Message édité par joce le 10-08-2004 à 20:27:20
n°819564
Taz
bisounours-codeur
Posté le 10-08-2004 à 20:27:12  profilanswer
 

envoie un rapport de bug :o

n°819566
el muchach​o
Comfortably Numb
Posté le 10-08-2004 à 20:28:21  profilanswer
 

joce a écrit :

ca te choque pas un type "pTHX_ CV" toi ? :D moi si :o


 
Merde, tu m'as lu avant que j'efface mon pipo.  :D  
 
Ben macro, quoi ! Le code de Perl en est bourré.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
n°819567
joce
Architecte / Développeur principal
"BugHunter"
Posté le 10-08-2004 à 20:28:49  profilanswer
 

Taz a écrit :

envoie un rapport de bug :o

encore :'(
ca fait le deuxième client que je compile et où il avait une erreur :'(
dans le premier (clientIcq dernier version) ils utilisaient une variable qu'ils ne déclaraient que quand on avait HAVE_OPENSSL, donc forcement le compilo était moyennement content sans ca :o

n°819568
joce
Architecte / Développeur principal
"BugHunter"
Posté le 10-08-2004 à 20:29:52  profilanswer
 

el muchacho a écrit :

Merde, tu m'as lu avant que j'efface mon pipo.  :D  
 
Ben macro, quoi ! Le code de Perl en est bourré.

donc ma première pensée était la bonne :D
J'ai eu un doute à un moment en pensant à une declaration obscure du C que je connaissais pas :D

n°819572
alien cons​piracy
hardtrance addict
Posté le 10-08-2004 à 20:36:44  profilanswer
 

joce a écrit :

encore :'(
ca fait le deuxième client que je compile et où il avait une erreur :'(
dans le premier (clientIcq dernier version) ils utilisaient une variable qu'ils ne déclaraient que quand on avait HAVE_OPENSSL, donc forcement le compilo était moyennement content sans ca :o

"BugHunter"
Faut croire que ta réputation te poursuit. [:dawa]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  C'est quoi cette declaration C ?

 

Sujets relatifs
[VBA Excel] Petit soucis de déclaration dans une requetteprob au moment du linkage: multiple declaration of.......
[PHP] Forward declaration ?déclaration d'un array dans une classe
probleme de declaration de variableprobleme declaration operateur new
pbm de déclarationErreur de déclaration: Note& au lieu de Note*
declaration de thread en global et threadstart [résolu]declaration d'un sous type
Plus de sujets relatifs à : C'est quoi cette declaration C ?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)