最近在(深入理解C指针)的书上看到这么一节代码,. U& O1 p* ]7 O' O y- i( f
对于我这新手来说,是没见过的!
0 E; N) y2 m/ h大家对这个用法熟吗?能说说你们的意见吗?
7 h$ t1 V: E5 P8 h- typedef int (*operation)(int, int);
6 E1 }$ {* u- `: H4 u7 u- X, |% K# Y - typedef int (*fptrOperation)(int,int);
0 w+ h) L$ ^) f6 h: l" K a) v' J - operation vector[128] = {NULL};% `" d( w0 K$ L Y& }: q) `
1 J( _) r* S2 \9 k+ W) N v# J) I- int add(int num1,int num2)/ ?6 `3 n0 c2 Y6 i, d
- {& m+ L- I- m& M' \/ @: q( [
- return num1 + num2;5 N- D3 k# w: w
- }: \" F' e4 a( g- _- h
$ h1 o. x' P7 f- int sub(int num1,int num2)
( p, X, P& f) I# Y u - {
" m% j3 y( _& I- T - return num1 - num2;
0 B/ W4 b+ Y& T - }: H5 l4 `( e, j. B
- & j5 w2 a7 ?* h7 p, c& L
- void initVectorArray(void), t, i% {- S6 \+ K0 S
- {
+ G* W4 }5 ]/ i) q - vector['+'] = add;
A8 T1 i( u6 K$ m1 ^6 [( R5 n - vector['-'] = sub;
5 N8 G8 F) Q. w& F Y - }
O! B, H: a1 p$ [+ N5 z4 ~+ C
R6 E3 |4 }- v- int eva(char opcode,int num1,int num2)8 U5 l% P0 _2 ]
- {' ?8 F' x* J: F
- fptrOperation operation;
4 S( V) C! K( H - operation = vector[opcode];4 f* H8 R; E; x$ c
- return operation(num1,num2);% C1 N8 z% l+ o( @ _
- }$ }# ?( v/ g3 g* H! S9 S) W3 J
% H: b/ ~# ~& g) T- int main(void)- h2 O% k; ~. H A+ Z
- {
5 ?5 r* B) S, Q1 d* ? - initVectorArray();* w# A7 J; ~! w# e; O
- printf("%d\n",eva('+',5,6));
1 Z& F3 X7 J/ I1 @ R( I z - printf("%d\n",eva('-',5,6));
p: j4 n4 i$ q+ J: S) d
: @2 b6 Q8 f: ~$ X+ G- ?: H- system("pause");1 {) Y" i; H+ _4 e% \2 \6 { z7 c
- return 0;
! L: ]8 F( o6 f/ r: W - }
复制代码 5 i, j: ~$ j( o7 n5 ~/ r1 h
7 E' B- A' ]7 }* Q% V" `( \! W: N
|
typedef unsigned int uint_8;
8 U3 l# o( m* z1 j3 J2 O+ O
uint_8 x,y;
typedef struct a; j5 f: R* H; I. ]+ o; }
{# Q# {3 E9 i' ~7 [( g* o5 t
......6 f2 ^" N' \5 h3 G o. |' K
}A;
看来还是太菜了
5 y$ m# i7 ?& ?( H6 E