la meilleure methode d'identation (a mon avis) est celle qu'utilise emacs, un decalage de deux espaces, et une tab des qu'il peut en caser une.
jcop a écrit :
pour ceux qui ne savent pas et qui utilisent VC++ :
VC++ indente ton code avec [Alt]+[F8] (très très pratique)
emacs idente n'importe quel bloc avec [Ctrl]+[Alt]+[Q], il suffit de placer le curseur sur l'accolade ouvrante du bloc a identer, et ca identera tout ce bloc et tous ses sous-blocs
quand tu est sur une ligne, n'importe ou sur la ligne, et que tu appuies sur [tab], ca te l'idente automatiquement en fonction de la position de la ligne d'au dessus, en plus c pratique, pke si t'as oublie une parenthese/accolade/crochet dans la ligne d'au dessus, l'identation refuse de se faire
pour mettre une tab c'est Meta+i ([Alt]+[i])
[cite]
VC++ transforme les espaces en tabulations et inversement[cite]
iden avec emacs quand tu utilise tab, sauf que ca fait pas tab->espace, ca sert a rien (tant que t'utilise emacs)
enfin VC++ permet de passer du début d'un bloc vers la fin d'un bloc et inversement avec [Ctrl] + [^] (faut que le curseur soit sur une accolade)
Enfin, le code ça s'indente avec des tabs et pas des espaces.
ca s'idente avec les deux...
exemple d'identation standard avec emacs du code de Kevin: (+ mise a la norme d'epitech en terme de lisibilite (dsl g pas pu m'en empecher, ca devient un tic

))
// 7 grayscale with transparency clipped sprite routine
__attribute__((regparm(2)))
void DrawSprite(unsigned char *sprite, short x, short y)
{
unsigned char bytewidth = *(sprite++);
unsigned char height = *(sprite++);
unsigned short bytesize = bytewidth * height;
unsigned char *mplane = sprite + bytesize;
unsigned char *lplane = mplane + bytesize;
unsigned short *dscreen = Gray3PDBufGetHiddenPlane(GRAY3P_DARK_PLANE);
unsigned short *mscreen = Gray3PDBufGetHiddenPlane(GRAY3P_MEDIUM_PLANE);
unsigned short *lscreen = Gray3PDBufGetHiddenPlane(GRAY3P_LIGHT_PLANE);
unsigned short xshift0 = 24 - (x & 15);
unsigned short xshift1 = 24 - ((x + 8) & 15);
for (short i = 0; i < height; i++)
{
short yc = y+i;
if ((yc >= 0) && (yc < 128))
{
for (short j = 0; j < bytewidth; j++)
{
short xc = x + (j << 3);
if ((xc > -8) && (xc < 240))
{
unsigned short xshift = (j & 1) ? xshift1 : xshift0;
unsigned long d = *(sprite++);
unsigned long m = ~(unsigned long)(unsigned char)~ * (mplane++);
unsigned long l = ~(unsigned long)(unsigned char)~ * (lplane++);
d <<= xshift;
m = ~((~m) << xshift);
l = ~((~l) << xshift);
unsigned long mask = ~d & m & l;
if (xc < 0) mask |= 0xFFFF0000ul;
if (xc > 232) mask |= 0xFFFFul;
*(unsigned long *)(dscreen + (yc * 15 + (xc >> 4))) &= mask;
*(unsigned long *)(mscreen + (yc * 15 + (xc >> 4))) &= mask;
*(unsigned long *)(lscreen + (yc * 15 + (xc >> 4))) &= mask;
// medium gray dithering to improve quality
unsigned long mgray = d & ~m & ~l;
switch (yc & 3)
{
case 0:
mgray &= 0x88888888;
break;
case 1:
mgray &= 0x11111111;
break;
case 2:
mgray &= 0x44444444;
break;
case 3:
mgray &= 0x22222222;
break;
}
d &= ~mgray;
m |= mgray;
l |= mgray;
d &= ~mask;
m &= ~mask;
l &= ~mask;
*(unsigned long *)(dscreen + (yc * 15 + (xc >> 4))) |= d;
*(unsigned long *)(mscreen + (yc * 15 + (xc >> 4))) |= m;
*(unsigned long *)(lscreen + (yc * 15 + (xc >> 4))) |= l;
}
else
{
sprite++;
mplane++;
lplane++;
}
}
}
else
{
sprite += bytewidth;
mplane += bytewidth;
lplane += bytewidth;
}
}
}
et c'est la que tu vois que ton code est vraiment long
et la au moins c'est lisible

et maintenant tu as le droit d'aller te faire botter les fesses par la moulinette de correction pke ta fonction fait plus de 25 lignes


