27Fermer29
PolluxLe 15/11/2003 à 01:40
C99 rulez. unsigned char (*mat)[ydim]; et même pas besoin que ydim (ni xdim) soit constant.

Mais n'importe quoi!
C:\Documents and Settings\Paul>echo const int x=20; int y[x]; > z.c

C:\Documents and Settings\Paul>tigcc -S -O2 z.c
z.c:1: error: variable-size type declared outside of any function

C:\Documents and Settings\Paul>tigcc -std=gnu99 -S -O2 z.c
z.c:1: error: variable-size type declared outside of any function

Et idem si tu le déclares dans une structure j'imagine embarrassed
Quant au ##, regarde les sources de ld-tigcc, il y en a pas mal (pour faire des templates en C).

Ne t'inquiète pas, je sais ce que c'est embarrassed Ca m'est arrivé assez souvent d'en utiliser, mais c'est vraiment pas terrible : si tu mets des fonctions dedans, c'est complètement indébuggable. Et pour l'exemple qui nous intéresse, ce n'est pas du tout aussi flexible que 'const int xdim' puisqu'on est obligé de le mettre dans une variable donnée et de déclarer à la main, pour tous les noms de variables possibles, la largeur du tableau... En plus on a vite fait de se planter dans un copier coller embarrassed