回覆列表
  • 1 # 使用者3653102638543

    不可以,但可以用函式指標實現。比如下面實現的輸出vnode中的字串。

    struct vnode{

    char *s;

    void (*print_s) (struct vnode *vnd);

    void (*init)(struct vnode *vnd, const char *s);

    };

    void vnode_print_s(struct vnode *vnd){

    printf("%s", vnd->s);

    } void vnd_init(struct vnode *node, const char *s) { node->init = vnd_init; node->s = (char*)malloc(strlen(s)+1); strcpy(node->s, s); node->print_s = vnode_print_s; } void vnd_destroy(struct vnode *node){ if(node->s){ free(node->s); } } int main() { struct vnode vnd; char s[] = "Hello\n"; vnd_init(&vnd,s); vnd.print_s(&vnd); vnd_destroy(&vnd); return 0; }

  • 中秋節和大豐收的關聯?
  • 《夢幻西遊》的小豬妮妮,為什麼會被稱作這款遊戲的最牛玩家?