Bonjour, quand je compile avec TIGCC (0.96 b8) j'obtiens cette erreur : "Redefinition of 'Symbol'."
Dans mon code, je fais un "#include <header.h>" qui inclut un fichier que j'ai copié dans "TIGCC/include/C".
Le symbole en question est défini (une seule fois) comme ceci : "static inline void Symbol(void) { ... }"
Où est mon erreur ?

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Ouai, mais par définition, static signifie que le symbole ne peut pas être vu par les autres fichiers sources du projet. C'est vrai que du coup ça paraît bizarre de mettre un identifiant static dans un header (qui est potentiellement inclu dans plusieurs fichiers).

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
Tu peux aussi utiliser #pragma once contre l'inclusion multiple.
Ouai mais dans son cas après static il y a inline donc la seule position possible est un fichier h (si naturellement cette fonction est utilisée un peu partout) ?
Effectivement, static inline est un peu spécial.
D'ailleurs, tu devrais mettre __attribute__((always_inline)) si tu veux être sûr que la fonction sera vraiment inline.
Sally Le 23/02/2008 à 15:10 Ah tiens c'est nouveau ça ? (je me souviens qu'avec tigcc je crois 0.94 j'avais dû jouer en ligne de commande sur inline_limit ou quelque chose comme ça pour l'empêcher de créer la fonction à part)

« Le bonheur, c'est une carte de bibliothèque ! » —
The gostak distims the doshes.Membrane fondatrice de la confrérie des
artistes flous.
L'univers est-il un
dodécaèdre de Poincaré ?
(``
·\ powaaaaaaaaa ! #love#
Cet attribut existe depuis longtemps.
Ouai mais les pragma ça fait bricolage, rajout de pièces manquantes. Je trouve le ifdef/define/endif plus clair, plus élégant, et en plus c'est totalement portable.

Un site complet sur lequel vous trouverez des programmes et des jeux pour votre calculatrice TI 89 / Titanium / 92+ / Voyage 200 :
www.ti-fr.com.
Quelques idées personnelles
ici.
onur Le 25/02/2008 à 23:44 J'avais mis des pragma once dans le code d'ETP-Basic compiler (version c++ bien sur) et justement je me souviens être repassé au système #ifndef quand j'ai essayé de compiler avec g++ et qu'il m'avait jeté (je compilais au prélable avec MSVC et les pragma once marchaient). Ca a toujours été supporté les #pragma once?
Tout ce qui passe pas par le port 80, c'est de la triche.
Une version pro, ça ne me surprend pas (surtout pour de l'ADA, le contraire aurait été stupide).
Ah et aussi le fait d'être perpétuellement mis à jour ne sert à rien : mieux vaut un compilateur figé une fois pour toute qu'un truc évoluant perpétuellement : on veut pouvoir regénérer exactement (CRC/checksums à l'appui) les mêmes binaires à partir par exemple de sources d'un exécutable livré des années auparavant, et c'est plus simple de référencer une seule version d'un compilateur que plusieurs dizaines, une pour chaque livraison.

Que cache le pays des Dieux ? -
Forum Ghibli -
Forum LittéraireLa fin d'un monde souillé est venue. L'oiseau blanc plane dans le ciel annonçant le début d'une longue ère de purification. Détachons-nous à jamais de notre vie dans ce monde de souffrance. Ô toi l'oiseau blanc, l'être vêtu de bleu, guide nous vers ce monde de pureté. - Sutra originel dork.