|
Bas de page | |
---|---|
Auteur | Sujet : static inline |
Publicité | Posté le 24-01-2011 à 23:54:23 |
esox_ch | oui et oui --------------- Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait |
in_your_phion |
merci, serait ce possible d'avoir plus d'explications ? En fait selon moi le cas 1 veut dire qu'on peut appeler les méthodes sans instancier de classe, et le fait qu'elles soient inline qu'elles sont cut&pastés dans le code au lieu d'avoir une adresse en mémoire. Mais j'ai du mal à voir ce que ça change avec le cas 2 si les fonctions n'étaient pas statiques dans une classe. Quand choisit-on l'un ou l'autre ? merki Message édité par in_your_phion le 25-01-2011 à 09:48:57 |
theshockwave I work at a firm named Koslow | inline indique à ton compilateur que tu voudrais éviter de générer un appel à cette fonction et plutôt copier son contenu à l'endroit de l'appel. Cela dit, ce n'est qu'une indication (ton compilateur n'en tient pas forcément compte)
--------------- last.fm |
in_your_phion |
|
theshockwave I work at a firm named Koslow | c'est pas mutuellement exclusif. Dans le cas d'une méthode de classe static inline, tu précises juste que cette fonction, en plus de ne pas être appelée sur une instance sera probablement mieux dupliquée à chaque référence.
--------------- last.fm |
in_your_phion | ok merci! Alors je crois que je comprend le cas 1) - dans une classe. Mais pour le cas 2, quand on parle de static cela veut dire que le code est visible juste dans le fichier ou il est déclaré (internal linkage), non ? Dans ce cas n'est ce pas redondant -dumoins inutile et sans effet- d'avoir inline, alors que c'est statique ? i.e le code sera cut&pasté (inline), alors statique ne sert à rien. Message édité par in_your_phion le 25-01-2011 à 19:19:07 |
theshockwave I work at a firm named Koslow | inline a toujours le même effet, que la portée de la fonction soit restreinte à une unité de compilation ou non. Elle peut toujours être référencée plusieurs fois dans ton unité ou non et mériter ou non d'être inlinée.
--------------- last.fm |
esox_ch | Je crois qu'il mélange l'effet de inline, qui est transparant pour l'utilisateur et n'est qu'une indication d'optimisation possible à effectuer par le compilateur, et static, qui lui a vraiment une utilité "directe" pour le dev --------------- Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait |
snafu8 | Je me greffe pour un petit truc.
|
Publicité | Posté le 26-01-2011 à 10:49:23 |
Un Programmeur |
--------------- The truth is rarely pure and never simple (Oscar Wilde) |
in_your_phion |
hello, Si la fonction est inline, pour moi ça veut dire que le code sera tout simplement remplacé (copié/collé) aux endroits où c'est appelé, comme une macro dans le principe. Donc si c'est le cas, je ne vois pas l'interêt de dire que c'est statique, puisque comme le code est copié/collé il est forcément visible uniquement qu'à l'endroit où on l'a copié je ne sais pas si vous comprenez ... Message édité par in_your_phion le 27-01-2011 à 14:46:18 |
snafu8 | <Pour ce que j'en ai compris>
|
theshockwave I work at a firm named Koslow | ce qu'il faut voir, c'est qu'une fonction qui n'est pas déclarée en static mais est implémentée uniquement dans un fichier .c ou .cpp peut être déclarée dans une autre unité directement et utilisée comme telle, fut-elle inline ou non.
Message édité par theshockwave le 28-01-2011 à 12:03:07 --------------- last.fm |
Joel F Real men use unique_ptr |
|
Sujets relatifs | |
---|---|
Forcer les classes filles à avoir des méthodes/attributs static | question sur static |
initialisation static | [Static Control] NOWORDWRAP |
question sur static et multithread | <ul> (pas <li>) en inline |
Convertir inline CSS en règles ? Converts inline style into CSS rules | lib shared, optim facon static ? |
static_cast<> mal compris ? | FUNCTOR vs static |
Plus de sujets relatifs à : static inline |