Orion_ :Un pointeur ?
donc je me demandais si il était possible d'utiliser une variable avec l'adresse de la fonction à exécuter dedans.
[...]
le problème c'est comment le faire en C ?
typedef void (*pFn_t)(int); void F1(int x) { printf("F1(%d)\n", x); } void F2(int x) { printf("F2(%d)\n", x); } void theloop() { int i; pFn_t pfn; pfn = dois_je_utiliser_F1 ? F1 : F2; for (i = 0; i < N; ++i) pfn(i); }
nitro
:Pollux :
Les extensions GNU sont là pour être utilisées
Ah bon, je pensais qu'elles étaient là pour rendre ton programme incompatible avec les compilateurs qui respectent le standard. On m'aurait menti.
nitro
: J'suis pas sûr que ce soit son truc...
Déjà que, la dernière fois que j'ai essayé (ça remonte), tigcclib.h ne passait pas en -std=c99.
-ansi et -pedantic ne sont volontairement pas supportés par TIGCC et ne le seront vraisemblablement jamais
spectras :
Un warning sert précisement à détecter les erreurs probables, meme si elles sont interprétées correctement par le compilateur. -Werror t'aide à maintenir une ligne de conduite (particulièrement utile quand tu as des développeurs moins pointilleux qui ont pour habitude de laisser trainer des warnings partout - là ils sont obligés de corriger). Après, évidemment, y'a différentes valeurs pour la qualité d'un source...
D'autant plus que tout code générant un warning peut etre modifié pour faire exactement la meme chose de manière propre en un nombre de lignes équivalent.
-ansi et -pedantic ne sont volontairement pas supportés par TIGCC et ne le seront vraisemblablement jamais
C'est pas parce que tu ne veux pas de ces fonctions que tu dois te sentir obligé d'en priver ceux qui en trouvent l'intéret.
Kevin Kofler
:spectras :Mais quelqu'un qui oblige à corriger tous les warnings n'a pas compris la différence entre un warning et une erreur, justement!
Un warning sert précisement à détecter les erreurs probables, meme si elles sont interprétées correctement par le compilateur. -Werror t'aide à maintenir une ligne de conduite (particulièrement utile quand tu as des développeurs moins pointilleux qui ont pour habitude de laisser trainer des warnings partout - là ils sont obligés de corriger). Après, évidemment, y'a différentes valeurs pour la qualité d'un source...
D'autant plus que tout code générant un warning peut etre modifié pour faire exactement la meme chose de manière propre en un nombre de lignes équivalent.Pas nécessairement!
D'autant plus que tout code générant un warning peut etre modifié pour faire exactement la meme chose de manière propre en un nombre de lignes équivalent.
1. Produisant du code aussi efficace ? 2. Sans rajouter de nouvelle variable ?1) oui, parce que le compilateur est parfaitement capable d'éliminer les éléments ne servant qu'à la syntaxe et inutile dans la génération du code.
short keypress=keypress; for (short i=0;i<6;i++) { Gray3PDBufSetActiveAMSPlane(i%3); DrawStr(Q(0,6),Q(46,59),"Really quit?",A_XOR); if (i==2) keypress=GetKeyInput(); } FontSetSys(OldFont); if (keypress==KEY_ENTER) {victory=0;break;} else goto retry1;
short keypress=keypress; for (short i=0;i<6;i++) { Gray3PDBufSetActiveAMSPlane(i%3); DrawStr(Q(0,6),Q(46,59),"Really quit?",A_XOR); if (i==2) keypress=GetKeyInput(); } FontSetSys(OldFont); if (keypress==KEY_ENTER) {victory=0;break;} else goto retry;