最近在(深入理解C指针)的书上看到这么一节代码,
; ~- _& O6 l; F; v- B对于我这新手来说,是没见过的!
& U3 H, y7 Z, F; b$ P2 H' m8 y8 [大家对这个用法熟吗?能说说你们的意见吗?' ~. y1 W& _% N4 m
- typedef int (*operation)(int, int);
; _ n9 @8 e- T) _+ U# q) c. R - typedef int (*fptrOperation)(int,int);
* \7 m1 ^2 ]. _9 _" V# P* | - operation vector[128] = {NULL};
; ^! v& e- `& l, E. q) c# n
" j" k- y- i9 A1 U- int add(int num1,int num2)& i. b) @, t! n0 C4 D7 @
- {
' |6 v- I3 W. J+ s2 |/ T - return num1 + num2;" t; V6 @0 ~0 v, ^
- }
% [ w2 ]4 ~% A - 2 X! s6 R( g6 [! P
- int sub(int num1,int num2)
8 s: F: f5 B6 u) d; o - {
/ d- ^4 g$ Y0 X0 M; Y - return num1 - num2;7 L+ r3 \4 j0 I9 _
- }: P3 B# b" ^+ h6 Q
& K. G& X- d1 i q- void initVectorArray(void)
* E% c! m- N2 f - {5 Q' ?0 u1 O$ u9 f+ a
- vector['+'] = add;3 e+ l5 E! E1 P0 ?
- vector['-'] = sub;
! ^9 W* x+ F6 s1 @6 N - }3 \2 k, p# z1 j
5 A3 X; Q9 [5 f4 {9 t8 k- int eva(char opcode,int num1,int num2)/ Y r% t% Z7 u/ `
- {
+ p. f$ _! T i8 h1 E/ u - fptrOperation operation;
$ M4 ~- N: f7 H7 [) f8 { - operation = vector[opcode];
" f: ]% z& I; O8 V h5 Y2 J5 B - return operation(num1,num2);
4 H* ~) Z& P5 i2 s0 k - }
# { l, X' |" J( x6 U, o
" g k. {8 q6 q6 [" Q4 \- int main(void); R# s, A) \7 H8 d! [: G; R- d& w
- {
$ q9 ^9 F [# v% G S, L D% n - initVectorArray();
0 Y9 y6 N+ n7 l - printf("%d\n",eva('+',5,6));
( C( m t' O# h: l8 z G2 d4 e - printf("%d\n",eva('-',5,6));
/ `$ ~0 Y& d2 ~% c
. m8 o- ^6 T* h: _# u" J6 F' Z- system("pause");% [0 {' A: H q4 A I& M1 D
- return 0;* Z! |1 }" ]) a& Q7 O: n
- }
复制代码
: V. Y( g% T6 a# I5 F
- {3 `' J* D$ I$ W |
typedef unsigned int uint_8;
' e& Y: V, w/ O) n/ t# T; y$ P
uint_8 x,y;, F/ V2 J" k5 i) T3 G+ Y
; I- y9 n) |% ?5 ?
typedef struct a( J: ]8 A1 [8 a% H' V$ ]* I, ~
{- S8 X: K$ W8 R3 G) y
......
}A;
看来还是太菜了
- r1 R% ^- r/ E