
Pour faire propre, ce #define doit aller où ?
edit -> je veux dire, dans quel header

lea InitQuitFlag(Pc),a1 tst.b (a1) ; Test if install ? beq.s \no_deinstall
Folco (./28) :
En plus, quand je compile avec "-Wa,-l", il me dit
1. Que j'ai encore de l'espace à gagner avec le switch -l de GAS !!2. Que les ramcalls peuvent pas être relatifs (sans blague) et qu'il les passe en absolu.
Folco (./32) :
Et bien voilà, en une après-midi, j'ai écrit autant qu'en 3 jours d'asm...
-Wextra
This enables some extra warning flags that are not enabled by -Wall. (This option used to be called -W. The older name is still supported, but the newer name is more descriptive.)
if(CharY < 30) { offset = 30 - CharY; CharY = 30; PlanePtr->ys -= offset; if((signed) PlanePtr->ys < 0) { CharY -= PlanePtr->ys; PlanePtr->ys = 0; } ==> goto EndCheckLimits; } limit = LCD_HEIGHT - 30; if((unsigned) CharY > limit) { offset = CharY - limit; CharY = limit; PlanePtr->ys += offset; if(PlanePtr->ys > ScrollMaxY) { CharY -= PlanePtr->ys; PlanePtr->ys = ScrollMaxY; } } ==>EndCheckLimits:
if(CharY < 30) { offset = 30 - CharY; CharY = 30; PlanePtr->ys -= offset; if((signed) PlanePtr->ys < 0) { CharY -= PlanePtr->ys; PlanePtr->ys = 0; } } else { limit = LCD_HEIGHT - 30; if((unsigned) CharY > limit) { offset = CharY - limit; CharY = limit; PlanePtr->ys += offset; if(PlanePtr->ys > ScrollMaxY) { CharY -= PlanePtr->ys; PlanePtr->ys = ScrollMaxY; } } }
int bla() { int ret = 0; int blabla; printf(">>%s()", __func__); blabla = do_that(); if (blabla == fail) { ret = -1; goto exit: } do_these(); exit: printf("<<%s() = %d", __func__, ret); return ret; }
int func() { int ret = 0; FILE *fp; char *toto; toto = (char*)malloc(128); if (!toto) goto bad_exit; if (!(fp = fopen("thefile.txt", "rt"))) goto free_toto: do_whatever_we_want(); fclose(fp); goto exit; free_toto: free(toto); bad_exit: ret = -1; exit: return ret; }
Godzil (./51) :Euh à part que comme dans l'exemple précédent tu as juste représenté un else par un goto, ça reste un peu débile non ?
La ça peut paraitre ridicule, mais le code est beaucoup plus lisible
Sally (./52) :Godzil (./51) :Euh à part que comme dans l'exemple précédent tu as juste représenté un else par un goto, ça reste un peu débile non ?
La ça peut paraitre ridicule, mais le code est beaucoup plus lisible
int func() { FILE *fp; char *toto; toto = (char*)malloc(128); if (toto) { if (fp = fopen("thefile.txt", "rt")) { do_whatever_we_want(); fclose(fp); return 0; } else free toto; } return -1; }Bon évidemment le problème c'est que tu veux prendre des exemples simples et que goto n'est utile que dans des cas compliqués, je comprends bien, mais bon
allocation mémoire 1; if (ok allocation 1) { ouverture fichier 1; if (ok fichier 1) { allocation mémoire 2; if (ok allocation 2) { ouverture fichier 2; if (ok fichier 2) { la seule partie utile de cette horrible pyramide de gestion d'erreurs; fermeture fichier 2; } libération mémoire 2; } fermeture fichier 1; } libération mémoire 1; }
Sally (./46) :
Oui c'est ambigu, donc la solution quand c'est ambigu c'est de rajouter des parenthèses*((short *) FuncPtr)++
Kevin Kofler (./53) :
Normalement, -Wextra devrait aussi passer avec TIGCC!