Gần đây tôi đã được đọc một mã, và phát hiện ra rằng một con trỏ hàm được viết như sau:Viết một con trỏ hàm trong c
int (*fn_pointer (this_args))(this_args)
tôi thường gặp phải một con trỏ hàm như thế này:
return_type (*fn_pointer) (arguments);
tương tự điều được thảo luận here:
// this is a function called functionFactory which receives parameter n
// and returns a pointer to another function which receives two ints
// and it returns another int
int (*functionFactory(int n))(int, int) {
printf("Got parameter %d", n);
int (*functionPtr)(int,int) = &addInt;
return functionPtr;
}
Ai đó có thể cho tôi biết sự khác biệt và cách thức công việc này?
bạn có thể vui lòng đăng mã chính xác không? một mẫu compilable? –
Điều này có thể giúp http: // stackoverflow.com/questions/840501/how-do-function-pointers-in-c-work? rq = 1 –
@ iharob: Mã của tôi dài hơn. Tôi vừa cập nhật. –