mrgoto : le pb ici, c´est que comme dit Lapintade, on a deux solutions possibles ( le #define et le ( static) const) pour une utilisation similaire ( definir des valeurs qui ne vont pas changer dans le programme, mais qui vont etre utilisé par des bouts de code.
Le define relevant du prépocesseur, à la compilation ça n´existe plus du tout, on perd donc toute notion de qualification de la donnée représentée ( une valeur entière peut alors marcher avec quoi, des char, des word, de int, des float, etc.) sans que le compilo ne rale. Quel que soit ton #define, tu peux toujours des cas foireux où le compilo ne verra rien et où le resultat peut etre " innatendu".
Les static const restent du domaine du runtime, on garde donc toute la notion de type, et on peut aussi introduire une portée pour plus de clartée. Le désavantage est que la donnée existe en mémoire, ce n´est plus une valeur de type " immediate", et cela a donc un faible cout supplémentaire