|
Page : 1 2 Page Précédente | |
Auteur | Sujet : [C++/résolu] donnée static const Pi=3.14 |
Publicité | Posté le 10-04-2006 à 20:19:25 |
skelter | Test:: Pi est externe et non-définie (quoiqu'il me semble que quand tu l'initialises dans la définition de la classe elle est lié statiquement et donc ca devrai compiler)
Message cité 1 fois Message édité par skelter le 10-04-2006 à 20:28:21 |
skelter |
|
nargy | g++4.0.1
|
nargy | trop de la balle, il y a -fno-threadsafe-statics (donc l'inverse aussi).
|
skelter | en fait je crois que sur une vieille version (<3) ca ne passait pas l'édition des lien, sur la 3.4 ca passe et à nouveau plus sur la 4
|
nargy | > si la variable static constante est entiere
|
skelter | aucune idée, ce n'est pas expliqué dans le stroustrup ni dans le standard |
++fab victime du syndrome IH | Ni dans le D&E |
skelter | ni sur cpptips, bs renvoi direct à son livre
|
Publicité | Posté le 10-04-2006 à 23:23:15 |
nargy | Ok, prise de tête quoi.
|
skelter | qu'est-ce qui t'empeches de la définir dans un .cpp ? |
nargy | parceque je la veux inline ma constante. |
skelter | je ne penses pas qu'il puisse y avoir de différence au niveau du code généré, en fait pourquoi il y en aurait ? |
++fab victime du syndrome IH | constante inline, ça n'a pas de sens. |
nargy | ben, si je déclare par exemple:
|
++fab victime du syndrome IH | La même avec static int const a, en compilation optimisée ? Message cité 1 fois Message édité par ++fab le 10-04-2006 à 23:57:06 |
skelter | +1, le compilateur ne peut pas deviner la constance de a, il faut la lui communiquer et le mot-clef const est la pour ca
|
skelter |
nargy | > (une fois le programme terminé, en se basant sur les informations de profilage)
|
skelter |
|
chrisbk - |
Message édité par chrisbk le 11-04-2006 à 00:18:48 |
nargy | Pi c'est pour exemple, mes constantes sont des coordonnées polaires sur 6+1 plans:
|
nargy | Enfin, merci de vos conseils.
|
nargy | Bon ok, voilà le listing ASM avec gcc4 -O2 et Real=double:
``define`` et ``static const`` utilisent le prefetch, et ``class static const`` peut utiliser le cache sauf si le segment de donnée est trop gros (ce qui est le certainement cas dans mon programme, ainsi que pour le segment de code).
Message édité par nargy le 11-04-2006 à 01:51:34 |
tbp | Suivant ta platforme et les options, gcc va p-e essayer de regrouper les constantes similaires de toute façon (pooling).
|
nargy | > J'ai du mal a saisir ce que tu veux vraiment obtenir in fine: un fldpi? chargement par immediats (movl $1374389535, %ebx; movl $1074339512, %esi; push; push)? reference memoire?
|
tbp |
|
Taz bisounours-codeur |
|
Taz bisounours-codeur | sinon, on rêve tous de constantes extern inlinées dès possibles Faut faire son deuil : ou multiple définitions, ou bien payer un petit prix à l'accès . J'ai récemment gagner 17k de .text et bien 4k de .data en virant la définition d'une
|
nargy | Merci pour vos commentaire, ça m'aide beaucoup.
|
nargy |
Taz bisounours-codeur |
|
nargy | > dès que tu as un objet pas POD, ben il faut faire attention
|
tbp |
|
++fab victime du syndrome IH |
|
Taz bisounours-codeur | 1) pas d'accord du tout. Et puis ça coute peut etre plus cher sur ton x86, pas ailleurs. Je vois pas plus court qu'un li ... l'inline de constantes permet très souvent de propager d'autres optimisations. Montre moi comment gcc peut optimiser a + b avec a et b extern const int ...
|
Taz bisounours-codeur |
|
Taz bisounours-codeur | tiens ça a à voir avec mon problème http://www.open-std.org/jtc1/sc22/ [...] /n1469.pdf |
tbp |
|
Publicité | Posté le |
Page : 1 2 Page Précédente |
Sujets relatifs | |
---|---|
[Résolu]Problème avec un script de dockbar type mac OS | [résolu] Supprimer des modules |
[Résolu] ViewState | Pourvoir lire dans une lib static |
[ RESOLU ] structure boucle | resolu :donner la valeur d'une var de sess à un champ caché ds un form |
(résolu) [Java 3D] Comment centrer la vue sur des objets WaveFront | [RESOLU]Mon neurone va exploser |
[Résolu] typeid | (résolu) [Java 3D] Changer l'apparence d'objets WaveFront |
Plus de sujets relatifs à : [C++/résolu] donnée static const Pi=3.14 |