最近在(深入理解C指针)的书上看到这么一节代码,( V: o, {/ _8 Q1 A
对于我这新手来说,是没见过的!
# L/ O" w1 s2 @4 v大家对这个用法熟吗?能说说你们的意见吗?
9 ^; t3 e" x9 i1 S- typedef int (*operation)(int, int);
, t& G* y. z y o9 o - typedef int (*fptrOperation)(int,int);
) T1 d* M( O# a5 m: ? - operation vector[128] = {NULL};( Z- h! [, h" X T
- 9 b j a2 n9 m3 |0 S6 H
- int add(int num1,int num2)
( C/ n9 R4 z2 W/ D2 [7 w! h5 ~ - {
; I& J" _& Y q; E& `4 ^ - return num1 + num2;
' b$ W' S, R: S - }
5 u7 Y1 K' B# R' i) `5 ~, p c" Q
% y& \! ]( f* W' O3 Y, i- int sub(int num1,int num2)
( i5 v, X' T' ]. o$ {8 r+ d - {
2 P' K. O* I8 w1 M4 e1 X6 g - return num1 - num2;
8 j/ h3 I n, A |# h# j# G( q1 D - }" D7 ?6 \6 x6 l$ B' y" b
' }) ]0 j: P* f9 ~: @2 y s- void initVectorArray(void)
' P3 V% j, @: a8 v+ g - {# G! c* K Y- m
- vector['+'] = add;0 Z3 P/ }0 b" r" }. L" S. f! W9 d7 C
- vector['-'] = sub;/ [) v9 E3 g! @; N& |. D
- }
# z% g0 p* o* x9 a% I - , B# d7 l* ~5 D. i$ Z* H4 G" S+ s5 i# O7 d
- int eva(char opcode,int num1,int num2)8 y9 i5 |! j( n8 J% V
- {$ ]) p" N) z2 U6 z: v* h) o
- fptrOperation operation;$ w5 r" w. I9 q8 x
- operation = vector[opcode];9 y" j5 {, {: T3 V/ j
- return operation(num1,num2);
" X2 c. h( {: I; [9 ]+ m - }
/ N& [! d6 ~& `+ A - + m5 H1 r6 j( c. H3 {% l% m
- int main(void)
9 |* p0 N% W; z; [6 | - {' _) C$ B, q) m5 b; L
- initVectorArray();
+ e! }" t5 Z- j2 E9 R) H+ s3 F0 C - printf("%d\n",eva('+',5,6));
( `: g/ W- o Z% Q! y - printf("%d\n",eva('-',5,6));
/ w4 ^( G+ ?- Q* p p' T6 g - 3 ]2 p% l# `* E5 Q% I1 x+ [
- system("pause");/ z) }- F5 q/ V5 {4 q! C
- return 0;
3 b' x/ R: c% w9 g - }
复制代码
/ o% N, _ O; z) B. m( m: P6 E1 }% Q" t; m: t
|
typedef unsigned int uint_8; _% K3 w; n n5 i1 H2 Y( p
# {% [6 D3 k5 N/ l$ g* C
uint_8 x,y;( I# E2 w' i3 L; ], C+ |" x7 \
1 Z* S# l8 R4 _5 B
typedef struct a( B* x: |0 m' k5 X9 N1 T
{
......, s$ y7 L) L* S5 y j0 v0 C+ L" r
}A; e" F' [5 I! o# E
3 Y7 _, O4 ~( [
看来还是太菜了