转自:http://www.iteye.com/problems/24480
#include <stdio.h>
#define NULL 0
#define ASGN 1
#define MUL 2
int asgn(int* a, int b) {
return *a = b;
}
int mul(int* a, int b) {
return *a * b;
}
int (*func(int op))(int*, int) {
switch (op) {
case ASGN:
return &asgn;
case MUL:
return &mul;
}
return NULL;
}
int main() {
int i = 0xFEED, j = 0xBEEF;
printf("%x\n", func(ASGN)(&i, j)); // beef
printf("%x\n", func(MUL)(&i, j)); // 8e67a321
printf("%x, %x\n", i, j); // beef, beef
return 0;
}
本文通过一个具体的C语言程序示例介绍了如何使用函数指针实现动态选择运算操作。程序定义了两个基本运算函数asgn和mul,并通过函数指针func来动态选择调用这两个函数之一。该示例展示了如何利用函数指针来增强代码的灵活性。
1007

被折叠的 条评论
为什么被折叠?



