大佬教程收集整理的这篇文章主要介绍了我究竟做错了什么? (C编程,指针,结构,函数),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
#include <stdio.h> #include <stdlib.h> typedef struct{ int age; // NPC methods int (*put_age)(NPC *character,int age); } NPC; //////////////////////////////////// int set_age(NPC *character,int age); int main(){ NPC *zelda = malloc(sizeof(NPC)); zelda->put_age = set_age; zelda->put_age(zelda,25); printf("Zelda's age is %d\n",zelda->age); return 0; } int set_age(NPC *character,int age){ character->age = age; return 0; }
编译器输出:
$gcc ~/test.c /test.c:7:21: error: expected ‘)’ before ‘*’ token /test.c:8:1: warning: no semicolon at end of struct or union /test.c: In function ‘main’: /test.c:16:8: error: ‘NPC’ has no member named ‘put_age’ /test.c:17:8: error: ‘NPC’ has no member named ‘put_age’
typedef struct tagNPC { int age; // NPC methods int (*put_age)(struct tagNPC *character,int age); } NPC;
要么
typedef struct tagNPC NPC; struct tagNPC { int age; // NPC methods int (*put_age)(NPC *character,int age); };
以上是大佬教程为你收集整理的我究竟做错了什么? (C编程,指针,结构,函数)全部内容,希望文章能够帮你解决我究竟做错了什么? (C编程,指针,结构,函数)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。