Godzil (./241) :
Il me semble que tu peux pas faire un
void*malloc(size_t size);
char *blabla = malloc(1024);
sans au moins te prendre un warning...
Si, et c'est exactement pour ça que le C permet de convertir un
void * en n'importe quoi implicitement. (Le C++ introduit l'opérateur
new pour ça.)
Folco (./247) :
Ma structure est locale à main, je passe juste un pointeur. Et du code de porc, que veux-tu, je début. Je vais pas m'amuser à faire 10 structures redondantes pour passer le pointeur de celle kivabien à telle ou telle fonction. C'est là que j'arriverais aux problèmes.
L'idée, c'est de ne pas avoir de structure du tout (sauf pour les trucs comme
SCR_RECT qui vont vraiment ensemble, évidemment), mais de passer les paramètres un par un. Regarde un peu les prototypes des ROM_CALLs: dans la plupart des cas, ce n'est pas
void fonction(STRUCTURE_ENORME*);, mais quelque chose de type
int fonction(int a, int b, SCR_RECT *c, int d);. Le deuxième prototype fait nettement plus "C".
Ce que je fais, c'est la même chose qu'en assembleur
C'est bien ça le problème, il faut prendre des habitudes plus "haut niveau" pour écrire du C maintenable.
Folco (./248) :
Vous précisez toujour "return" à la fin de vos fonctions ?
Non! C'est idiot de mettre
return; à la fin d'une fonction
void, je n'ai vu personne faire ça.
Et écrivez-vous fonction(arg1, arg2)ou fonction (arg1, arg2) ? (avec un espace avant la parenthèse)
Là c'est plus débattu, mais personnellement j'ai horreur de cette espace inutile, ça cache l'appel de fonction, donc non, je ne la mets pas!
Quand vous faites des opérations mathématiques, mettez-vous un espace entre les opérateurs et les variables/constantes ?
En général non, la coloration syntaxique sert à ça, mais la plupart des personnes mettent des espaces autour des opérateurs.