Outils pour utilisateurs

Outils du site


lang:c:attribut

Ceci est une ancienne révision du document !


Il existe les attributs standards définis dans la norme. Ils sont entourés par une paire de crochets xxx.

Le compilateur peut aussi apporter des attributs supplémentaires non standard. Dans ce cas, l'attribut est entouré de __attribute__((xxx)).

Attributs non standards

__attribute__((const)) et __attribute__((pure))

Les fonctions pure et const ne modifient aucune donnée à l'extérieure de la fonction. La différence est que deux appels consécutifs à une fonction pure ne renverront pas toujours le même résultat contrairement à une fonction const où les résultats seront toujours les mêmes.

pure a accès aux arguments et aux variables globales et peut déréférencer un pointeur dont le contenu peut changer entre deux appels.

const n'a accès qu'aux arguments et ne peut pas déréférencer un pointeur.

The const attribute imposes greater restrictions on a function’s definition than the similar pure attribute.

The const attribute prohibits a function from reading objects that affect its return value between successive invocations.

In general, since a function cannot distinguish data that might change from data that cannot, const functions should never take pointer or, in C++, reference arguments.

Using the GNU Compiler Collection, Archive v9.2 le 06/03/2020

lang/c/attribut.1583523963.txt.gz · Dernière modification : 2020/03/06 20:46 de root