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 : 2020/06/16 12:00 de root