250Fermer252
Kevin KoflerLe 19/11/2009 à 11:21
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.