variables en argument à la fonction

Avoir ce code:

typedef volatile int COUNT;       

COUNT functionOne( COUNT *number );

int  functionTwo( int *number );

Je ne peux pas me débarrasser de certaines mises en garde..

Je reçois cet avertissement 1 à functionOne prototype

[Avertissement] type de qualificatifs ignoré sur
type de retour de fonction

et je reçois cet avertissement 2, où que j'appelle functionTwo avec un nombre pointeur argument au lieu d'un int pointeur

[Avertissement] cast discards qualifiers
de pointeur de type de cible

évidemment variables/indicateurs ne peuvent pas être "jeté" à la volatilité des nations unies volatile.. mais tous les arguments doivent être indiqués comme étant volatile trop? alors, comment puis-je utiliser une fonction de la bibliothèque si elle est déjà défini pour les non-volatile variable?

MODIFIER: à l'Aide de gcc -std=c99 -pedantic -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wextra -Wstrict-prototypes -Wmissing-prototypes …

MODIFIER: Après Jukka Suomela conseil ceci est un exemple de code d'avertissement de deux

typedef volatile int COUNT;       

static int functionTwo(int *number) {
    return *number + 1;
}

int main(void) {
    COUNT count= 10;
    count = functionTwo(&count);
    return 0;
}
J'espère que c'est une question purement théorique. Si c'est un réel problème que vous essayez de résoudre, l'approche que vous avez sélectionné peut-être prenez-vous un chemin difficile. Je ne peux pas penser à une bonne raison pourquoi vous voulez passer un volatile dans une fonction par valeur.
Je ne peux pas trouver une raison, mais si je ne fais pas de cette façon, je reçois un second avertissement me disant que je devrais spécifier volatils dans le prototype de la volatilité des variables

OriginalL'auteur Hernán Eche | 2010-07-21