Effet de -pedantic

Effet de -pedantic - C - Programmation

Marsh Posté le 04-12-2004 à 13:15:39    

après avoir lu le bibliolink C, j'ai rajouté -pedantic à mes lignes de compilation
ce qui fait que maintenant je compile avec "-pipe -Wall -pedantic -std=c99" principallement
 
en recompillant mes programmes je me rend compte que le -pedantic il va m'être très génant :
jusqu'ici, mes fonctions je les déclarées comme ça par expl
 

Code :
  1. str_GFX_T6963_com1 *GFX_T6963_CreateCom1 (Uint16 port, Uint8 cd_pin, Uint8 rd_pin, Uint8 wr_pin, Uint8 ce_pin); // Dans le header
  2. ...
  3. str_GFX_T6963_com1 *
  4. GFX_T6963_CreateCom1 (port, cd_pin, rd_pin, wr_pin, ce_pin)
  5.   Uint16 port;
  6.   Uint8 cd_pin, rd_pin, wr_pin, ce_pin;
  7. {
  8. ...
  9. }


 
or le pedantic il aime pas parce que ma déclaration et mon prototype sont différent, mais juste dans la syntaxe :/ ça doit être une extension non autorisée :??:
ça me gène, car je veux garder cette notation que je trouve plus clair
 
n'y a t'il pas moyens d'empecher -pedantic de m'embêter avec ça ? :sweat:

Reply

Marsh Posté le 04-12-2004 à 13:15:39   

Reply

Marsh Posté le 04-12-2004 à 13:41:08    

Nan, le -pedantic il DETESTE (tout comme la norme ANSI) les définitions de type K&R. C'est à dire avec le type des paramètres exprimés entre l'en-tête et le corps de la fonction.
 
Mais c'est une très bonne initiative que de compiler en Wall et -pedantic. Je te félicite.

Reply

Marsh Posté le 04-12-2004 à 13:44:12    

oui mais si le pedantic déteste cette notation je crois qu'il va gicler :whistle:

Reply

Marsh Posté le 04-12-2004 à 13:47:31    

Euh, même le "-ansi' l'interdit, non ?  
 
Bref, toujours est-il que je te conseille très forcément de t'en débarasser, car certains compilos ne sont pas capables de concilier les facilités du C99 avec la syntaxe K&R.
 
A la limite, tu peux simplifier tes déclarations en utilisant des structures pour aggreger les passages de paramètres (façon Windows API...) ).

Reply

Marsh Posté le 04-12-2004 à 13:54:08    

pour l'ansi, je ne le ferais pas, car depuis le début je fais tout en c99 et ça risque de chier de tout les côtés si je passe en ansi :d
 
cette syntaxe est très pratique pour utiliser les arguments de splint ou doxygen
 
quand à utiliser des structure, étant donné que c'est pour une API ça risque de compliqué fortement son utilisation :/
 
 
je ne sais que faire :/ d'un côté je cherche à avoir du code le plus clean possible, d'un autre côté le -pedantic il m'emmerde un brin :/


Message édité par Deadog le 04-12-2004 à 13:54:29
Reply

Marsh Posté le 04-12-2004 à 14:18:52    

Deadog a écrit :

en recompillant mes programmes je me rend compte que le -pedantic il va m'être très génant :
jusqu'ici, mes fonctions je les déclarées comme ça par expl
 

Code :
  1. str_GFX_T6963_com1 *GFX_T6963_CreateCom1 (Uint16 port, Uint8 cd_pin, Uint8 rd_pin, Uint8 wr_pin, Uint8 ce_pin); // Dans le header
  2. ...
  3. str_GFX_T6963_com1 *
  4. GFX_T6963_CreateCom1 (port, cd_pin, rd_pin, wr_pin, ce_pin)
  5.   Uint16 port;
  6.   Uint8 cd_pin, rd_pin, wr_pin, ce_pin;
  7. {
  8. ...
  9. }


 
or le pedantic il aime pas parce que ma déclaration et mon prototype sont différent, mais juste dans la syntaxe :/ ça doit être une extension non autorisée :??:
ça me gène, car je veux garder cette notation que je trouve plus clair


La notation que tu utilises est obsolète depuis 1989. Depuis, on doit utiliser les prototypes qui sont plus solides et plus simples à maintenir:

Code :
  1. str_GFX_T6963_com1 *GFX_T6963_CreateCom1 (Uint16 port
  2.                                          ,Uint8 cd_pin
  3.                                          ,Uint8 rd_pin
  4.                                          ,Uint8 wr_pin
  5.                                          ,Uint8 ce_pin)
  6. {
  7.    ...
  8. }


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 04-12-2004 à 14:27:03    

Emmanuel Delahaye a écrit :

La notation que tu utilises est obsolète depuis 1989. Depuis, on doit utiliser les prototypes qui sont plus solides et plus simples à maintenir:

Code :
  1. str_GFX_T6963_com1 *GFX_T6963_CreateCom1 (Uint16 port
  2.                                          ,Uint8 cd_pin
  3.                                          ,Uint8 rd_pin
  4.                                          ,Uint8 wr_pin
  5.                                          ,Uint8 ce_pin)
  6. {
  7.    ...
  8. }




 
 
le problème de cette notation est qu'elle est dépendante de la police utilisée
cad si c'est une fixe ou non
or je ne suis pas le seul à programmer cette api, et chacun à ses ptites préférences :/


Message édité par Deadog le 04-12-2004 à 14:27:52
Reply

Marsh Posté le 04-12-2004 à 14:43:59    

Il existe des gens sur cette planète (dans l'Univers ?) qui utilisent autre chose qu'une police à chasse fixe pour programmer ? [:wam]

Reply

Marsh Posté le 04-12-2004 à 14:46:38    

Deadog a écrit :

le problème de cette notation est qu'elle est dépendante de la police utilisée
cad si c'est une fixe ou non
or je ne suis pas le seul à programmer cette api, et chacun à ses ptites préférences :/


ca n'a aucune importance, tu peux aussi bien écrire un truc du style

str_GFX_T6963_com1 *GFX_T6963_CreateCom1 (
    Uint16 port,
    Uint8 cd_pin,
    Uint8 rd_pin,
    Uint8 wr_pin,
    Uint8 ce_pin )
{
   ...
}


 
Après ce sont les règles de programmation correctes qui définissent la mise en page exacte utilisée par l'équipe

alerim a écrit :

Il existe des gens sur cette planète (dans l'Univers ?) qui utilisent autre chose qu'une police à chasse fixe pour programmer ? [:wam]


je présumme qu'il faut de tout pour faire un monde [:gratgrat]  
((C) Arnold&Willy)


Message édité par masklinn le 04-12-2004 à 14:47:27

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-12-2004 à 14:49:45    

hum, je l'avais pas vu comme ça masklinn :d
je prend ! merci :) merci à tous :)
 
 
(moi j'aime bien programmer avec une police à chasse non fixe :d c'est plus plaisant à l'oeil je trouve :p ...)


Message édité par Deadog le 04-12-2004 à 14:49:58
Reply

Marsh Posté le 04-12-2004 à 14:49:45   

Reply

Marsh Posté le 04-12-2004 à 14:51:56    

c'est quoi cette histoire de police à chasse fixe ? ça change quoi  :??:

Reply

Marsh Posté le 04-12-2004 à 14:57:43    

push a écrit :

c'est quoi cette histoire de police à chasse fixe ? ça change quoi  :??:


 
 
bah programmer avec une police à chasse fixe ça alligne les caractères
ça permet de mieux visualiser l'indentation par expl ... enfin à ce qu'il parrait, car moi ça ne me gène pas de pas utiliser de police à chasse fixe pour ça

Reply

Marsh Posté le 04-12-2004 à 15:09:49    

push a écrit :

c'est quoi cette histoire de police à chasse fixe ? ça change quoi  :??:


Citation :

Cette phrase n'est pas en chasse fixe


Cette phrase est en chasse fixe


 
Classiquement, tout le monde (ou presque) utilise une chasse fixe pour la programmation, parce que ca simplifie les alignements, ca permet d'avoir un "rendu" correct (plus propre) quand on visualise le code et ca permet de savoir ce que ca donne sur un affichage 80*20 (en console quoi)

Citation :

bah programmer avec une police à chasse fixe ça alligne les caractères


Non, c'est simplement que tous les caractères quels qu'ils soient ont la même taille (beaucoup plus pratique pour voir la longueur des lignes en caractères et autres)
 
(ah oui, et perso j'indente avec des espaces et non des tabulations, et en chasse non fixe c'est tendu [:ddr555] )


Message édité par masklinn le 04-12-2004 à 15:12:15

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 04-12-2004 à 15:23:57    

j'indente aussi à l'espace, 2 pour tout dire
ça me gène pas :??:
 
'fin bon, les gout et les couleurs :sleep: je vais bien me forcer à passer un jour en chasse fixe puisque quasi tout le omnde le fait et que je prog pas que pour moi ...

Reply

Marsh Posté le 04-12-2004 à 16:34:11    

Deadog a écrit :

le problème de cette notation est qu'elle est dépendante de la police utilisée
cad si c'est une fixe ou non
or je ne suis pas le seul à programmer cette api, et chacun à ses ptites préférences :/


  • La notation de style 'prototype' n'a rien à voir avec la police utilisée.
  • La présentation que j'ai utilisée dépend en effet de la police. Mais pour des raisons évidentes et bien connues (pas de TAB mais des espaces etc.) il est absurde d'utiliser un police proportionnelle pour du code. C'est horrible, de toutes façons.


Sur mes machines (Windows) j'utilise Courrier New et surtout Lucida Console (plus compact).


Message édité par Emmanuel Delahaye le 04-12-2004 à 16:36:57

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Marsh Posté le 04-12-2004 à 17:01:27    

bon, un nouveau problème avec pedantic :

Citation :


lib/graphique/char_map.h:3705: attention : les cibles des pointeurs dans initialisation n'ont pas toutes de signe


 
ce n'est qu'un extrait
ça s'applique à toutes les lignes pour ce genre de trucs :
 

Code :
  1. const Uint8 * char_map_normal_japan[128][9] = {
  2. {"\6 \10",
  3. // " "
  4. "------",
  5. "------",
  6. "------",
  7. "------",
  8. "------",
  9. "------",
  10. "------",
  11. "------",},
  12. {"\6 \10",
  13. // "!"
  14. "--+---",
  15. "--+---",
  16. "--+---",
  17. "--+---",
  18. "------",
  19. "------",
  20. "--+---",
  21. "------",},
  22. ...


 
 
je comprend pas trop le message d'erreur la :??:

Reply

Marsh Posté le 04-12-2004 à 17:02:51    

erf, résolue en mettant un char au lieu de Uint8
mais ça me gène un peu :/

Reply

Marsh Posté le 04-12-2004 à 20:36:38    

Je suis pas sûr là, mais ton compilo doit avoir des chaînes de caractères qui sont des signed char plutôt que des unsigned char comme tu essayes de lui mettre.  
 
Soit tu passes l'option qui va bien "-funsigned-char" à gcc, et ça peut résoudre tes problèmes.
 
Soit tu castes lors de l'affectation, mais c'est pas raisonnable.  
 
Ou mieux, tu utilises des char lorsque tu manipules du texte. C'est pas plus con...

Reply

Marsh Posté le 04-12-2004 à 21:13:56    

bah en faite c'est du texte uniquement pour faciliter l'écriture de la char map
sinon le '-' sont interpréter comme 0 et les '+' comme des 1
 
je vais faire un coup de -funsigned-char quand même ;)
 
 
sinon, à part c'est 2 ptits trucs, j'ai pas eu besoin de retoucher une seul partie de mon code :sol: tout est passé en -pedantic :)


Message édité par Deadog le 04-12-2004 à 21:15:11
Reply

Marsh Posté le 04-12-2004 à 21:30:35    

hum, le -funsigned-char n'a pas d'effet [:spamafote]

Reply

Sujets relatifs:

Leave a Replay

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