你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

typedef的非寻常用法??

[复制链接]
sincomaster 发布时间:2020-9-5 22:44
最近在(深入理解C指针)的书上看到这么一节代码,
; ~- _& O6 l; F; v- B对于我这新手来说,是没见过的!
& U3 H, y7 Z, F; b$ P2 H' m8 y8 [大家对这个用法熟吗?能说说你们的意见吗?' ~. y1 W& _% N4 m
  1. typedef int (*operation)(int, int);
    ; _  n9 @8 e- T) _+ U# q) c. R
  2. typedef int (*fptrOperation)(int,int);
    * \7 m1 ^2 ]. _9 _" V# P* |
  3. operation vector[128] = {NULL};
    ; ^! v& e- `& l, E. q) c# n

  4. " j" k- y- i9 A1 U
  5. int add(int num1,int num2)& i. b) @, t! n0 C4 D7 @
  6. {
    ' |6 v- I3 W. J+ s2 |/ T
  7.         return num1 + num2;" t; V6 @0 ~0 v, ^
  8. }
    % [  w2 ]4 ~% A
  9. 2 X! s6 R( g6 [! P
  10. int sub(int num1,int num2)
    8 s: F: f5 B6 u) d; o
  11. {
    / d- ^4 g$ Y0 X0 M; Y
  12.         return num1 - num2;7 L+ r3 \4 j0 I9 _
  13. }: P3 B# b" ^+ h6 Q

  14. & K. G& X- d1 i  q
  15. void initVectorArray(void)
    * E% c! m- N2 f
  16. {5 Q' ?0 u1 O$ u9 f+ a
  17.         vector['+'] = add;3 e+ l5 E! E1 P0 ?
  18.         vector['-'] = sub;
    ! ^9 W* x+ F6 s1 @6 N
  19. }3 \2 k, p# z1 j

  20. 5 A3 X; Q9 [5 f4 {9 t8 k
  21. int eva(char opcode,int num1,int num2)/ Y  r% t% Z7 u/ `
  22. {
    + p. f$ _! T  i8 h1 E/ u
  23.         fptrOperation operation;
    $ M4 ~- N: f7 H7 [) f8 {
  24.         operation = vector[opcode];
    " f: ]% z& I; O8 V  h5 Y2 J5 B
  25.         return operation(num1,num2);
    4 H* ~) Z& P5 i2 s0 k
  26. }
    # {  l, X' |" J( x6 U, o

  27. " g  k. {8 q6 q6 [" Q4 \
  28. int main(void); R# s, A) \7 H8 d! [: G; R- d& w
  29. {
    $ q9 ^9 F  [# v% G  S, L  D% n
  30.         initVectorArray();
    0 Y9 y6 N+ n7 l
  31.         printf("%d\n",eva('+',5,6));
    ( C( m  t' O# h: l8 z  G2 d4 e
  32.         printf("%d\n",eva('-',5,6));
    / `$ ~0 Y& d2 ~% c

  33. . m8 o- ^6 T* h: _# u" J6 F' Z
  34.         system("pause");% [0 {' A: H  q4 A  I& M1 D
  35.         return 0;* Z! |1 }" ]) a& Q7 O: n
  36. }
复制代码

: V. Y( g% T6 a# I5 F
- {3 `' J* D$ I$ W
收藏 评论2 发布时间:2020-9-5 22:44

举报

2个回答
sincomaster 回答时间:2020-9-5 22:51:21
以前这只见过这种:
! @# H" X6 Z% E7 P. I) z/ g+ }1 r; itypedef unsigned int uint_8;
( c% j! l/ W' u3 d' s/ T' 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
......
# [+ h$ q9 J1 U, _) F! j- b}A;
2 k8 U+ W. N, J
, G+ y$ x" A; g$ M' m1 X( I看来还是太菜了
' L; |5 g: L, b7 _5 \, S  |- r1 R% ^- r/ E
ltbo4b8d6e 回答时间:2020-9-7 14:50:21
你这个是c++?

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版