lang:c: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édenteProchaine révision | Révision précédente | ||
lang:c:attribut [2020/07/13 22:39] – [__attribute__((weak))] : amélioration des explications root | lang:c:attribut [2021/01/05 21:50] (Version actuelle) – [restrict] : ajout du code source root | ||
---|---|---|---|
Ligne 27: | Ligne 27: | ||
<WRAP center round important 60%> | <WRAP center round important 60%> | ||
Rappel : l’attribut '' | Rappel : l’attribut '' | ||
+ | |||
+ | [[https:// | ||
</ | </ | ||
Ligne 43: | Ligne 45: | ||
====__attribute__((weak)) et extern==== | ====__attribute__((weak)) et extern==== | ||
+ | |||
+ | * Explication | ||
+ | |||
Cette information va être utile au lieur. | Cette information va être utile au lieur. | ||
Ligne 49: | Ligne 54: | ||
Il est aussi possible de définir un prototype ou la déclaration d'une variable globale '' | Il est aussi possible de définir un prototype ou la déclaration d'une variable globale '' | ||
- | <code c> | + | * Exemple |
- | #include < | + | |
- | // Défini dans le header | + | {{gh> |
- | extern int __attribute__((weak)) variable; | + | |
- | extern unsigned char __attribute__((weak)) variableNull; | + | |
- | // Défini dans le code source. | + | Symboles : |
- | int __attribute__((weak)) variable = 1; | + | |
- | int main() | + | {{gh> |
- | { | + | |
- | | + | |
- | std::cout << reinterpret_cast< | + | |
- | | + | |
- | std::cout << reinterpret_cast< | + | |
- | } | + | |
- | </ | + | |
Résultat dans la sortie standard: | Résultat dans la sortie standard: | ||
- | <code> | + | {{gh>https:// |
- | 6295640 vaut 1 | + | |
- | 0 est nullptr. | + | ====restrict==== |
- | </code> | + | |
+ | Mot clé pour indiquer qu'une zone mémoire n'est accédée que par un seul pointeur. Cette restriction n'est évidemment pas thread-safe. | ||
+ | |||
+ | Voir l' | ||
+ | |||
+ | ^Source^Code généré^ | ||
+ | |{{gh>https:// | ||
+ | |{{gh> | ||
+ | |||
+ | Avec '' |
lang/c/attribut.1594672756.txt.gz · Dernière modification : 2020/07/13 22:39 de root