lang:cpp:attribut
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| lang:cpp:attribut [2020/06/16 12:00] – Mise en forme pour faciliter la lecture root | lang:cpp:attribut [2020/07/18 23:54] (Version actuelle) – code -> gh root | ||
|---|---|---|---|
| Ligne 4: | Ligne 4: | ||
| Il est possible d' | Il est possible d' | ||
| - | <code cpp> | + | {{gh>https:// |
| - | int i = 1; | + | |
| - | if (i == 1) [[likely]] | + | |
| - | | + | |
| - | </code> | + | |
| - | <code cpp> | + | ^Avec attributs^Sans attribut^ |
| - | int f(int i) | + | |{{gh>https:// |
| - | { | + | |
| - | switch(i) | + | |
| - | | + | |
| - | case 1: return 1; | + | |
| - | [[likely]] | + | |
| - | case 2: return 2; | + | |
| - | [[unlikely]] | + | |
| - | default: return 3; | + | |
| - | | + | |
| - | return 2; | + | |
| - | } | + | |
| - | </code> | + | |
| - | * Code généré sans les attributs | + | <WRAP center round info 60%> |
| + | On voit que le code est différent pour le '' | ||
| + | </ | ||
| - | gcc est utilisé et les options d' | ||
| - | <code asm> | ||
| - | f(int): | ||
| - | mov eax, edi | ||
| - | cmp edi, 1 | ||
| - | je .L2 | ||
| - | cmp edi, 2 | ||
| - | mov edx, 3 | ||
| - | cmovne | ||
| - | .L2: | ||
| - | ret | ||
| - | </ | ||
| - | |||
| - | * Code généré avec les attributs '' | ||
| - | |||
| - | <code asm> | ||
| - | f(int): | ||
| - | mov eax, edi | ||
| - | cmp edi, 1 | ||
| - | je .L2 | ||
| - | cmp edi, 2 | ||
| - | jne .L8 | ||
| - | .L2: | ||
| - | ret | ||
| - | .L8: | ||
| - | mov eax, 3 | ||
| - | ret | ||
| - | </ | ||
lang/cpp/attribut.1592301649.txt.gz · Dernière modification : de root
