La définition de const valeurs dans C

J'ai un projet C où tout le code est organisé en *.c/*.h paires de fichier, et j'ai besoin de définir une constante de valeur dans un fichier, qui sera toutefois également être utilisé dans d'autres fichiers. Comment dois-je déclarer et définir cette valeur?

Devrait-il être comme static const ... dans le *.h fichier? Comme extern const ... dans le *.h fichier et définis dans le *.c fichier? En quoi importe-t-il si la valeur n'est pas une primitive de type de données (int, double, etc), mais un char * ou un struct? (Même si dans mon cas c'est un double.)

La définition des trucs à l'intérieur *.h fichiers ne semble pas être une bonne idée en général; on doit déclarer les choses dans le *.h fichier, mais les définir dans le *.c fichier. Cependant, la extern const ... approche semble inefficace, car le compilateur ne serait pas en mesure de l'inclure la valeur, au lieu d'avoir à être accessible via son adresse de tous les temps.

Je suppose que l'essence de cette question est: Doit-on définir static const ... valeurs dans *.h des fichiers dans C, dans le but de les utiliser plus qu'un seul endroit?

OriginalL'auteur Paggas | 2008-12-10