【发布时间】:2011-11-07 17:27:08
【问题描述】:
您好,我是初学者,我正在尝试找出一些指向函数示例的指针。我什至无法编译我的代码,它显示以下消息。我无法确定为什么会出现编译错误。
/tmp/cc0qghbo.o: In function `main':
pointer_to_function_inside_structure.c:(.text+0x88): undefined reference to `func_ptr'
collect2: ld returned 1 exit status
这是我的代码,请告诉我我做错了什么
#include<stdio.h>
#include<stdlib.h>
struct student_data
{
char *name;
int roll_num;
int marks;
void (* func_ptr)(struct student_data *ptr);
};
void print_data(struct student_data *ptr);
void print_data(struct student_data *ptr)
{
printf("\nNAME OF THE STUDENT %s", ptr -> name);
printf("\nROLL NUMBER OF STUDENT %d", ptr -> roll_num);
printf("\nMARKS OF STUDENT %d\n", ptr -> marks);
}
int main()
{
struct student_data *ptr;
ptr -> name = "ajish";
ptr -> roll_num = 2;
ptr -> marks = 50;
ptr -> func_ptr = &print_data;
func_ptr(ptr);
}
【问题讨论】:
-
您的最后一行
func_ptr(ptr)使用了未声明的变量func_ptr。你碰巧有一个同名的字段成员,也许你打算ptr->func_ptr(ptr)?
标签: c function function-pointers