Je ne comprend pas tout...

Je ne comprend pas tout... - C++ - Programmation

Marsh Posté le 08-05-2006 à 15:29:24    

Salut à tous,
 
j'essai de compiler libxine 1.1.1 sous Solaris en utilisant Sun Studio 11 (je sais, c'est sportif).
Mais j'ai vus une horreur dans le code (enfin, je trouve que c'est une horreur, même si je ne sais presque pas coder en C).
 
Quand je vais un gmake, il me sort ça :

Citation :


"load_plugins.c", line 183: warning: assignment type mismatch:
        pointer to int "=" pointer to unsigned int
"load_plugins.c", line 513: void function cannot return value
cc: acomp failed for load_plugins.c
gmake[3]: *** [load_plugins.lo] Error 1


 
Je vais donc voir dans ce fichier load_plugins.c, et je tombe sur ça a la ligne 513.
 

Citation :


void xine_register_plugins(xine_t *self, plugin_info_t *info) {
  return _register_plugins_internal(self, NULL, info);
}


 
D'un coups, j'ai compris pourquoi le compilateur rale.
 
Mais il y a un autre problème bizzare, j'ai commenté tout ce code, (avec // ), et il me resort encore la même erreur  :pt1cable:  (pourtant il est bien commenté).
 
Donc, j'aimerai avoir vos lumière sur le fait pourquoi le programmeur a fait ça (ce void avec un return), et aussi pourquoi il me ressort la même erreur avec le fichier commenté.
 
Je vous remercie.

Reply

Marsh Posté le 08-05-2006 à 15:29:24   

Reply

Marsh Posté le 08-05-2006 à 16:37:16    

en C 'ansi' les commentaire c'est uniquement /* ... */ sans imbrication

Reply

Marsh Posté le 13-05-2006 à 19:20:25    

Willits a écrit :

Mais il y a un autre problème bizzare, j'ai commenté tout ce code, (avec // ), et il me resort encore la même erreur  :pt1cable:  (pourtant il est bien commenté).
 
Donc, j'aimerai avoir vos lumière sur le fait pourquoi le programmeur a fait ça (ce void avec un return), et aussi pourquoi il me ressort la même erreur avec le fichier commenté.


 
Il existe une astuce pour inhiber facilement une partie d'un code sans se préoccuper des commentaires éventuels : mettre au début du code à inhiber la ligne "#ifdef __UNDEF" et mettre en fin de code la ligne "#endif //__UNDEF"
Le code ne sera jamais vu par le compilo. De plus, le token "__UNDEF" signifiant "non défini", n'importe qui lisant ces instructions comprendra leur but réel. Et je vois mal un gogelu écrivant qqpart "#define __UNDEF..."

Message cité 1 fois
Message édité par Sve@r le 13-05-2006 à 19:23:31

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
Reply

Marsh Posté le 13-05-2006 à 21:06:28    

Sve@r a écrit :

Le code ne sera jamais vu par le compilo. De plus, le token "__UNDEF" signifiant "non défini", n'importe qui lisant ces instructions comprendra leur but réel. Et je vois mal un gogelu écrivant qqpart "#define __UNDEF..."


 
D'autant plus que __UNDEF est un nom réservé à l'implémentation.


Message édité par ++fab le 13-05-2006 à 21:08:42
Reply

Marsh Posté le 13-05-2006 à 21:10:17    

et puis "#if 0", et c'est quoi le probleme à utiliser les commentaires C ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed