“ce” pointeur en C (pas C++)

Je suis en train de créer une pile en C pour le fun, et est venu avec l'idée d'utiliser la structure pour représenter la pile. Puis-je ajouter des pointeurs de fonction de la structure de push() et pop ().

Pour l'instant, tout est bon il me semble, mais, pour la mise en œuvre de la fonction push() et pop() fonctions dont j'ai besoin pour se référer à *ce en quelque sorte. Comment peut (peuvent?) être fait?

C'est mon struct

struct Stack {
    int *data;
    int current_size;
    int max_size;
    int (*push)(int);
    int (*pop)();
};

Et comme un exemple ici de pousser

int push(int val) {
    if(current_size == max_size -1)
            return 0;

    data[current_size] = val;
    current_size++;

    return 1;
}

Comme vous pouvez l'imaginer, le compilateur n'a aucune idée de ce que current_size est, comme il le ferait s'attendre à quelque chose comme stack->current_size.

Est-ce possible de surmonter en quelque sorte?

quel est le point de pointeurs de fonction dans votre pile struct?
Pour essayer d'obtenir une réponse si c'est possible de faire appel à une pile de ce type comme ceci: stack->push(10);. Maintenant, si la réponse n'est pas donnée ici, je peux être assez confiant qu'elle est en effet impossible.

OriginalL'auteur foo | 2010-12-14