retour rien de non-annuler la fonction en C

ce qui est considéré comme la meilleure pratique dans le fragment de code suivant:

int foo(struct data *bar, struct info bla) {
    if (!bar) {
        bla->status = 0;
        return;
    }
    ...
}

en fait, il fonctionne très bien. mais je me sens mal à l'aise avec gcc me donner un avertissement.


voici le code:

static int pop(struct stack **stack, struct info *info) {
        int ret;
        struct stack *tmp;

        if (!*stack) {
                info->error = 0;
                return;
        }

        ret = (*stack)->data;
        tmp = *stack;
        *stack = (*stack)->next;
        free(tmp);

        return ret;
}
c'est juste ce certains cas, que je n'ai pas besoin de valeur de retour. dans ... il y a, en fait, un couple d'entiers retourné. c'est pourquoi je ne peux pas utiliser void ().
Retourner le code d'erreur; dans ce cas, vous pouvez return 0; pour SUCCESS en entrée n'est pas nulle. De retour -1 ou quelque chose pour NULL_POINTER de l'autre.
le point est, que je n'ai pas envie/besoin de quelque chose de significatif pour être retourné. je veux juste faire en sorte de sortir de l'appel de la fonction.
Et qu'attendez-vous de l'appelant? Il s'attend à un retour de la valeur. Si la valeur de retour n'est pas significative, car elle peut déterminer sa validité par un autre mécanisme, puis il suffit de choisir arbitrairement la valeur de retour.
Vous devez soumettre des réponses à la place des commentaires si vous voulez répondre à la question.

OriginalL'auteur guest | 2010-07-12