30

Lionel Debroux (./29) :
./23: pour moi, les if sans { } sont à bannir absolument etc.
Ben sauf si tu respectes la convention (à laquelle je pensais en ./24, c'était peut-être pas clair) :
SOIT if (machin) une_seule_expression; *sur une seule ligne*
SOIT if (machin) {
tralala
}
autrement dit la seule chose qui pour moi est à banir absolument c'est les if sans accolades où tu vas à la ligne après le if ; les if sans accolades sur une seule ligne ça va encore ^^
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

31

Pen^2 (./2) :
le mieux est de déclarer ses variables au plus proche de l'endroit où elles sont utilisées. Mais en C tu es forcé de les déclarer en début de portée (après l'accolade), donc... Pouvoir déclarer n'importe où est un avantage du C++

Le C99 existe depuis 10 ans et autorise de déclarer ces variables n'importe où (sauf derrière un label).
Ximoon (./3) :
Bon, j'imagine que tu dois savoir qu'on ne peut pas déclarer de variable en plein milieu du code, mais seulement en début de bloc ? biggrin.gif

Le C99 existe depuis 10 ans et autorise de déclarer ces variables n'importe où (sauf derrière un label).
Ximoon (./13) :
: j'ai déjà vu des char sur 16 bits

Et c'est parfaitement conforme à la norme. 1 char = 1 byte, mais dans la norme le byte peut valoir n'importe quoi (Y compris 16 bits ou 32 bits).
Ximoon (./18) :
Tu peux les utiliser si tu veux, vu que ce ne sont justement pas les types standard.

C'est définit dans le standard C99 comme des types standards.
Ximoon (./18) :
Mais tu présupposes que ce header existe pour toutes les cibles du monde, moi, pas biggrin.gif (et leurs types ne correspondent pas à mes standards d'appellation de types, mais ça n'a rien à voir biggrin.gif )

Honnétement si en 2009 ce header (qui doit prendre 5 minutes à écrire) n'existe pas, c'est que le compilateur n'est plus supporté (obsolescence).
(Et ne parle pas de diab data, il n'est même pas conforme au C89 wink).
Folco (./23) :
Ca vous arrive d'écrire :
if (condition) machin;

ou alors vous préférez :
if (condition) machin; ?

Le premier est problématique car les (certains) outils de couverture de code ne vont pas te montrer que le if n'est jamais faux ou toujours vrai.

32

J'adore ces gens qui ne pensent qu'à la programmation sur PC avec des normes de C qui ne sont pas forcément suivies partout... Coucou, y'a un monde dehors.

(diab data ne s'appelle même plus comme ça, mais je l'ai utilisé ces quatre dernières années en effet tongue)
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

33

Folco (./1) :
Convient-t-il mieux d'écrire :
if (condition){
  <du code>
}

ou
if (condition)
{
  <du code>
}

La première solution, sauf pour les fonctions où on met le { dans une ligne à part. (Bonne vieille tradition K&R.) Pour les else, on met } else { tout en une ligne.
Vaut-il mieux déclarer toutes les variables en début de fonction, ou les déclarer quand on va en avoir réellement besoin (par exemple, si une variable donnée n'a d'utilité qu'à un petit endroit donné de la fonction)

C'est plus pratique de les déclarer quand tu vas en avoir réellement besoin, mais attention, les compilateurs ISO C90 classiques ne comprennent pas, ils ne permettent les déclarations qu'en début de bloc. (Cela dit, je ne vois pas pourquoi il faudrait continuer à supporter les compilateurs qui ne suivent toujours pas le standard d'il y a 10 années (le C99).)
Vaut-il mieux avoir des variables globales (que TIGCC fout dans des BSS, et j'aime pas ça), ou mieux vaut-il avoir une structure dans main() les contenant et passer un pointeur en argument aux fonctions qu'on appelle ? J'ai choisi cette solution. Je penche plus pour la seconde solution, ayant l'habitude d'avoir ces variables sur la pile en ASM, et ayant un registre d'adresse global pointant vers ce frame et permettant à toutes les fonctions de voir ces variables.

Le mieux, c'est de ne passer que les variables que la fonction utilise réellement, par valeur quand c'est possible, c'est beaucoup plus propre.
Pen^2 (./2) :
J'aime bien la dissymétrie autour de l'affectation ^^

sick C'est moche.

Perso, j'utilise peu d'espaces autour des opérateurs, la coloration syntaxique sert à ça.
Mais en C tu es forcé de les déclarer en début de portée (après l'accolade)

Pas en C99. GCC accepte les déclarations au milieu du code depuis la version 3.0.
Ximoon (./3) :
trifus
Bon, j'imagine que tu dois savoir qu'on ne peut pas déclarer de variable en plein milieu du code, mais seulement en début de bloc ? grin

C'est faux, cf. ci-dessus.
Si tu parles de trucs du genre "for(int i =0; i<truc; i++)", je trouve ça horrible, et d'un moint de vue maintenance du code c'est du suicide.

Le C99 permet aussi ça, TIGCC permet ça avec -std=gnu99 (que je vais peut-être mettre par défaut un de ces jours, du moins pour les nouveaux projets dans les EDIs) et j'utilise ça dans mon code. (Il y a aussi -std=c99 pour le C99 strict, mais TIGCC ne supporte que les modes GNU.)
Zephyr (./8) :
- Accolades ouvrantes et fermantes seules sur leurs lignes, et indentées au même niveau (comme le 2eme exemple de Folco)
- Indentation avec des tabulations (souvent à 4 espaces), pas avec des espaces
- Déclaration des noms de variables et de fonctions alignées, avec une variable par ligne
- Espaces autour des opérateurs binaires, les assignations ne font pas exception : plop = array[i] + (5 * step);
- Espaces avant la parenthèse ouvrante des appels de fonction (je trouve illogique d'en mettre pour les mots-clés et pas pour les appels) : result = function (a, b);
- Astérisque (ou & pour le C++) collé au type et non à la variable (ça caractérise le type d'une variable, pas son nom) : int* a = &b- Blocs logiques dans le code séparés par une ligne vide

Bref, exactement le contraire de ce qu'il faut faire. sick
(Enfin, les lignes vides, ça passe de temps en temps, mais je ne les utilise que rarement.)

Je signale aussi que int* a est une faute logique comme le prouve l'exemple int* a, b qui ne fait pas ce que tu veux. Ta règle "une seule déclaration par ligne" n'est qu'un bidouillage pour traîter les symptomes de cette erreur de compréhension. L'étoile se rattache au a en C.
Ximoon (./9)

Il y a beaucoup trop de commentaires et d'espace blanc dans ton exemple.
Sally (./10) :
edit : c'est beau les tab à trois espaces trilove (par contre l'idéal c'est d'utiliser le caractère tab et de le régler visuellement à trois espaces, pas de taper les trois espaces ^^)

Et du coup, à moins que tu ne suives rigoureusement le style de Sebastian Reichelt (tab sous tab, espace sous autre caractère, un tab par niveau d'indentation, jamais de "compression" d'espaces par des tabs), ce que les éditeurs courants ne facilitent pas du tout, si le lecteur utilise une autre largeur de tabs, il va se retrouver avec du code aligné n'importe comment. sick

Les espaces, c'est mieux, c'est du WYSIWYG.
Ximoon (./13) :
et que tout compilateur ne respecte pas forcément la norme : j'ai déjà vu des char sur 16 bits

Il est possible d'avoir un char sur 16 bits tout en respectant la norme. (Cela dit, sizeof(char) == 2 n'est pas conforme, les machines avec des char de plus de 8 bits sont les machines tordues où on ne peut pas adresser chaque octet et où l'unité de la machine est donc un entier plus long.)
Sasume (./14) :
Zephyr (./12) :
À propos de la deuxième remarque de Ximoon, je suppose que c'est pour pouvoir changer facilement un type de données (int 16 bits -> int 32 bits par exemple) dans le programme en modifiant juste un "typedef" dans un header.
Mais pourquoi serait-on amené à faire ça ? Quid de stdint.h et inttypes.h ?

C'est du C99, donc si on veut gérer les compilateurs préhistoriques qui se limitent au C90 (et il me semble que ce soit le cas de Ximoon), on ne peut pas les utiliser. De plus, TIGCC ne gèrera stdint.h que dans la prochaine bêta (mais tu peux télécharger le header dans notre CVS si tu en as besoin maintenant) et nous n'avons pas encore de inttypes.h (celui de GCC4TI est incomplet et la documentation est insuffisante).
Folco (./23) :
Ca vous arrive d'écrire :
if (condition) machin;

ou alors vous préférez :
if (condition)
    machin;
?

Le premier si ça tient en une ligne, la deuxième sinon (c'est mieux que de mettre un saut de ligne en plein milieu de machin), et si ça ne tient toujours pas, ben:
if (condition)
  machin(xxxxxxxxxxxxxxxxxxxxxxxxxxxxx,
         chose);

Zephyr (./26) :
Parceque si un mec passe derrière moi et qu'il a des goûts étranges (indenter avec une largeur de 3 caractères par exemple ^^), un code source avec des tabulation sera lisible pour lui (son éditeur affichera des tabulations avec la largeur qu'il aura configuré).

Justement non, comme dit plus haut, le code risque fort d'être le bordel chez lui sauf si tu as fait très attention à ce que tu fais. Et dans tous les cas, les indentations variables posent problème si tu veux fixer la largeur maximale de tes lignes (genre à 80 caractères, 120 caractères ou ce que tu veux), ce qui est une bonne idée pour éviter de devoir défiler horizontalement (sick).
Sally (./27) :
Le comble de l'atrocité, c'est quand même l'indentation automatique d'emacs avec les options par défaut (Dieu merci ça se désactive, mais comment ont-ils pu tricoler au point de seulement avoir l'idée de ce système pourri ? cheeky)
Pour ceux qui ne savent pas, ça mélange les tabs et les espaces tritop, et donc c'est totalement dépendant de la largeur du tab, je crois que par défaut la tab vaut 8, donc au premier niveau d'indentation il insère deux espaces, au second quatre, au troisième six, et au quatrième... tab trigic (et au cinquième tab+2 espaces etc.) Et comme c'est le mode par défaut, si t'es pas au courant... sick

Effectivement, c'est totalement foireux, ce système. sick
Malheureusement, c'est la convention GNU. sick (C'est la seule idée de l'indentation K&R qu'ils ont retenue, manque de chance c'est la seule qui n'a aucun sens. sick)
Lionel Debroux (./29) :
Par exemple, je pense que le 'if (cond) {' sur la même ligne est une question de goût. En revanche, le '} else {' ne me paraît pas bon pour la lisibilité (c'est moins facile de trouver le "else").

Mais on voit tout de suite qu'il y en a un quand on lit le code.
Au moins, ça empêche de faire le truc très moche, parce qu'impossible à porter entre des compilos différents et éventuellement entre des versions du même compilo (il me semble que ce n'est pas garanti par le standard, et heureusement ^^), qui consiste à utiliser la valeur d'une variable d'itération principale hors du corps de la boucle grin

En C:
int i;
for (i=0; i<10; i++);
printf("%d\n",i);

est parfaitement défini et affiche toujours 10.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

34

Kevin Kofler (./33) :
Ximoon (./3) :
trifus
Bon, j'imagine que tu dois savoir qu'on ne peut pas déclarer de variable en plein milieu du code, mais seulement en début de bloc ? biggrin.gif

C'est faux, cf. ci-dessus.


Le meilleur moyen pour transformer un code en un bordel indescriptible.
Kevin Kofler (./33) :
Ximoon (./9)

Il y a beaucoup trop de commentaires et d'espace blanc dans ton exemple.


Je sais que tu n'as pas l'habitude de faire du code maintenable, mais quand même. Bienvenue dans le monde réel, Kevin.
Kevin Kofler (./33) :
Ximoon (./13) :
et que tout compilateur ne respecte pas forcément la norme : j'ai déjà vu des char sur 16 bits

Il est possible d'avoir un char sur 16 bits tout en respectant la norme. (Cela dit, sizeof(char) == 2 n'est pas conforme, les machines avec des char de plus de 8 bits sont les machines tordues où on ne peut pas adresser chaque octet et où l'unité de la machine est donc un entier plus long.)

C'est le cas d'énormément de microcontrôleurs et de DSP, figure toi. Mais ça n'empêche pas sizeof(char) de valoir 1, car sizeof est alors défini comme étant la taille du paramètre en nombre de chars. Typiquement, sur les DSP Texas Instruments, sizeof(char) == sizeof(short) == 1, car les deux sont codés sur 16 bits, bien que le premier n'utilise que 8 bits sur les 16.


Conseil pour Folco : écoute Kevin quand il parle technique, mais quand il commence à te dire comment coder, laisse tomber... Sauf à être curieux (j'avoue que sa méthode pour indexer des tableaux est... intéressante).
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

35

Ximoon (./34) :
(j'avoue que sa méthode pour indexer des tableaux est... intéressante)

trioui

36

Ximoon (./32) :
J'adore ces gens qui ne pensent qu'à la programmation sur PC avec des normes de C qui ne sont pas forcément suivies partout... Coucou, y'a un monde dehors.

Coucou, je suis déjà dehors ! Tu ne me vois pas tongue
Ximoon (./34) :
Kevin Kofler (./33) :
Ximoon (./13) :
et que tout compilateur ne respecte pas forcément la norme : j'ai déjà vu des char sur 16 bits

Il est possible d'avoir un char sur 16 bits tout en respectant la norme. (Cela dit, sizeof(char) == 2 n'est pas conforme, les machines avec des char de plus de 8 bits sont les machines tordues où on ne peut pas adresser chaque octet et où l'unité de la machine est donc un entier plus long.)
C'est le cas d'énormément de microcontrôleurs et de DSP, figure toi. Mais ça n'empêche pas sizeof(char) de valoir 1, car sizeof est alors défini comme étant la taille du paramètre en nombre de chars. Typiquement, sur les DSP Texas Instruments, sizeof(char) == sizeof(short) == 1, car les deux sont codés sur 16 bits, bien que le premier n'utilise que 8 bits sur les 16.

Je ne comprends pas. Kevin dit exactement ce que tu dis, et tu le contredis ? Je suis perdu.

37

Je ne le contredis pas, j'essaie juste de dire qu'il y a peut-être suffisamment de machines "tordues" dans le monde pour qu'on les prenne effectivement en compte.
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

38

Ximoon (./37) :
Je ne le contredis pas, j'essaie juste de dire qu'il y a peut-être suffisamment de machines "tordues" dans le monde pour qu'on les prenne effectivement en compte.

Ok.

39

t1 je remarque un truc, en asm, je passais 75% du temps à réléchir et 25% à écrire, en C c'est l'inverse. C'est presque usant. grin

40

Bah, en général, je mets ptr[idx], hein, ce n'est que quand je peux économiser des parenthèses que j'inverse, genre 4[(short*)p] (et au passage je remercie un des participants de l'IOCCC dont j'ai malheureusement oublié le nom pour cette astuce, si je me rappelle bien je l'ai lue en premier dans les remarques accompagnant une des entrées grin).

D'ailleurs, je préfère toujours *p à p[0] (même si c'est un tableau plus grand) et p+i à &p[i]. Vive le code compact!
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

41

si tu veux du code vraiment compact, faut pas programmer en C mon gars tongue
avatar
« Le bonheur, c'est une carte de bibliothèque ! » — The gostak distims the doshes.
Membrane fondatrice de la confrérie des artistes flous.
L'univers est-il un dodécaèdre de Poincaré ?
(``·\ powaaaaaaaaa ! #love#

42

Zephyr (./8) :
- Astérisque (ou & pour le C++) collé au type et non à la variable (ça caractérise le type d'une variable, pas son nom) : int* a = &b; -
Je faisait comme a mes débuts, jusqu'à ce que je face un : int* a, b;
Et la magie, a est bien un pointeur mais pas b. J'ai mis du temps avant de comprendre mon erreur, depuis je respecte le fonctionnement réel du C qui veut que le * porte sur la variable et non le type, même si je trouve que l'inverse aurait été plus logique.
Lionel Debroux (./29) :
./23: pour moi, les if sans { } sont à bannir absolument. C'est une source de bugs subtils qui peuvent difficiles à trouver, venant de la transformation, un jour où tu es fatigué / pressé, de
je rajouerais le classique :
if (condition1)
    if(condition2) printf("1");
else
   printf("2");
Ici le else porte en fait sur le second if et non sur le premier.


PpHd (./31) :
Le C99 existe depuis 10 ans et autorise de déclarer ces variables n'importe où (sauf derrière un label).


avatar

43

Uther (./42) :
Je faisait comme a mes débuts, jusqu'à ce que je face un : int* a, b;Et la magie, a est bien un pointeur mais pas b. J'ai mis du temps avant de comprendre mon erreur, depuis je respecte le fonctionnement réel du C qui veut que le * porte sur la variable et non le type, même si je trouve que l'inverse aurait été plus logique.

C'est effectivement dommage que le fonctionnement du C soit aussi mal fichu, mais je ne trouve pas que ce soit une raison suffisante pour écrire quelque chose d'aussi illogique. Comme dans tous les cas je ne déclare jamais plusieurs variables par ligne, les horreurs comme "int *a, *b, *c;" n'ont aucune chance d'arriver ^^

Concernant les "if" multiples avec un seul "else", il me semble que la majorité des compilateurs modernes est capable de sortir un warning dans ce genre de cas ? (même si bien sûr, pour que ce soit lisible derrière, les accolades restent indispensables)

Bon et sinon les conventions de Kevin sont un ramassis de fautes de goût, de logique et de style. Rien à ajouter si ce n'est de ne jamais suivre aucun de ces "conseils" grin
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

44

Bon et sinon les conventions de Kevin sont un ramassis de fautes de goût, de logique et de style. Rien à ajouter si ce n'est de ne jamais suivre aucun de ces "conseils" grin

"jamais" est peut-être excessif, mais il y a effectivement de vraies conneries dans ses conventions, comme le if sans accolades. Uther a posté un deuxième exemple, peut-être encore plus parlant que le mien, montrant qu'il ne faut pas faire ça.

Pour prendre quelque chose que Kevin aime bien: même les contributeurs au kernel Linux ou aux distros font la faute:
hamradio/scc: add missing block braces to multi-statement if
s2io: add missing block braces to multistatement if statement
( http://lwn.net/Articles/283819/ )
ou https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.12/+bug/54632
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

45

Zephyr (./43) :
C'est effectivement dommage que le fonctionnement du C soit aussi mal fichu, mais je ne trouve pas que ce soit une raison suffisante pour écrire quelque chose d'aussi illogique. Comme dans tous les cas je ne déclare jamais plusieurs variables par ligne, les horreurs comme "int *a, *b, *c;" n'ont aucune chance d'arriver ^^

Le fonctionnement du C est parfaitement logique, * est l'opérateur de déréférence, donc tu déclares: soit *a de type int (et par conséquent a un pointeur vers int).
Concernant les "if" multiples avec un seul "else", il me semble que la majorité des compilateurs modernes est capable de sortir un warning dans ce genre de cas ?

Effectivement, GCC 4.3 te sort un warning s'il y a un else ambigu.
(même si bien sûr, pour que ce soit lisible derrière, les accolades restent indispensables)

Pas du tout.
Bon et sinon les conventions de Kevin sont un ramassis de fautes de goût, de logique et de style. Rien à ajouter si ce n'est de ne jamais suivre aucun de ces "conseils" grin

s/Kevin/Zephyr/ tongue
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

46

Rah le C c'est la merde, je commence à aimer ça trilove je m'en sors mieux au bout de trois jours que j'aurais pu imaginer. Par contre, je suis dans l'ignorance totale de deux domaines :
- les optimisations
- le débogage

Ca promet pour la suite... sorry

47

Folco (./46) :
- les optimisations
Façon, si tu veux vraiment optimiser, tu passes en assembleur tongue (dehors)

Et c'est pas tant un troll que ça. Passé un certain niveau d'optimisation, je trouve que c'est plus pénible de chercher comment contrecarrer le mode de "raisonnement" du compilateur que de faire de l'ASM à la main, et en plus t'as pas de garantie d'obtenir le code que tu attends. Exemple : Duffs device pour un exemple classique d'un truc qui se fait mieux en ASM.

Et sinon, avoir l'expérience de l'assembleur aide aussi à faire du code C optimisé : ne pas utiliser des indices de tableau quand on peut les remplacer par des pointeurs, par exemple. Le compilateur essaie d'optimiser dans tous les cas, mais sa capacité de raisonnement est limitée.

EDIT : tiens, y'a un bug dans la balise URL.
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

48

Mais autant c'est facile de faire de l'ASM optimisé en 68k, autant c'est nettement plus compliqué avec des proc out-of-order...
Je me souviens d'un code portant sur des flottants qu'on pouvait considérer en tant que flottant ou en tant qu'entiers.
Il y avait un if…then…else parfaitement symétrique, sauf que dans une branche il était plus rapide de les considérer en tant qu'entiers, et dans l'autre il fallait mieux les considérer en tant que flottants... Je n'ai jamais bien compris la raison grin
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

49

Zerosquare (./47) :
EDIT : tiens, y'a un bug dans la balise URL.

Faut urlencoder ton apostrophe: Duff's device

Et au passage, le Duff's device fonctionne justement très bien en C, même si c'est un abus du langage.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

50

ouais mais il requiert 10 lignes de commentaires pour l'expliquer au pauvre mec qui passera après toi tsss


personne l'a encore posté, mais chez moi ou je bosse y'a des tordus qui écrivent:
int proto( int a, char b ) 
   { 
   char vLocale=3;
   if ( a == 25 )
      { 
      int vHuhu= 0 ; 
      invokeFunc(vLocale, 2) ; 
      } 
   return a ; 
   } 
sick

51

Mais voyons, ce bout de code est très clair trioui
avatar
Membre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

52

Avec des conventions typo parfaitement définies. tripo

53

farpaitement trioui

c'est pour ça que je code comme je veux et qu'on me dit rien grin

54

squalyl (./50) :
ouais mais il requiert 10 lignes de commentaires pour l'expliquer au pauvre mec qui passera après toi tsss

Pas du tout, le Duff's device est à présupposer connu, c'est un des patterns courants du C. Au maximum, tu mets /* Duff's device */.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

55

En tout cas quand je suis allé sur la page de wikipedia j’ai mis du temps avant de comprendre ce qu’était le Duff's device. Je croyais que c’était un truc complexe, en fait c’est juste une manière de dérouler une boucle en C.
avatar
« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

56

c'est un vieux hack nerdeux que les mecs qui ont inventé le C avaient pas prévu, et qui sert à rien sauf a dire qu'on connait le duffs device grin

53 : rotfl

57

J'avoue que je n'avais jamais entendu parler, même de loin.

(ah quoique, ça ressemble vaguement à la fonction foireuse que j'avais écrite pour les spritesx8 d'extgraph... de loin)
avatar
Que cache le pays des Dieux ? - Forum Ghibli - Forum Littéraire

La fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.

58

Pareil pour moi (sauf la partie extgraph grin)
avatar
<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant