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

typedef的非寻常用法??

[复制链接]
sincomaster 发布时间:2020-9-5 22:44
最近在(深入理解C指针)的书上看到这么一节代码,. U& O1 p* ]7 O' O  y- i( f
对于我这新手来说,是没见过的!
0 E; N) y2 m/ h大家对这个用法熟吗?能说说你们的意见吗?
7 h$ t1 V: E5 P8 h
  1. typedef int (*operation)(int, int);
    6 E1 }$ {* u- `: H4 u7 u- X, |% K# Y
  2. typedef int (*fptrOperation)(int,int);
    0 w+ h) L$ ^) f6 h: l" K  a) v' J
  3. operation vector[128] = {NULL};% `" d( w0 K$ L  Y& }: q) `

  4. 1 J( _) r* S2 \9 k+ W) N  v# J) I
  5. int add(int num1,int num2)/ ?6 `3 n0 c2 Y6 i, d
  6. {& m+ L- I- m& M' \/ @: q( [
  7.         return num1 + num2;5 N- D3 k# w: w
  8. }: \" F' e4 a( g- _- h

  9. $ h1 o. x' P7 f
  10. int sub(int num1,int num2)
    ( p, X, P& f) I# Y  u
  11. {
    " m% j3 y( _& I- T
  12.         return num1 - num2;
    0 B/ W4 b+ Y& T
  13. }: H5 l4 `( e, j. B
  14. & j5 w2 a7 ?* h7 p, c& L
  15. void initVectorArray(void), t, i% {- S6 \+ K0 S
  16. {
    + G* W4 }5 ]/ i) q
  17.         vector['+'] = add;
      A8 T1 i( u6 K$ m1 ^6 [( R5 n
  18.         vector['-'] = sub;
    5 N8 G8 F) Q. w& F  Y
  19. }
      O! B, H: a1 p$ [+ N5 z4 ~+ C

  20.   R6 E3 |4 }- v
  21. int eva(char opcode,int num1,int num2)8 U5 l% P0 _2 ]
  22. {' ?8 F' x* J: F
  23.         fptrOperation operation;
    4 S( V) C! K( H
  24.         operation = vector[opcode];4 f* H8 R; E; x$ c
  25.         return operation(num1,num2);% C1 N8 z% l+ o( @  _
  26. }$ }# ?( v/ g3 g* H! S9 S) W3 J

  27. % H: b/ ~# ~& g) T
  28. int main(void)- h2 O% k; ~. H  A+ Z
  29. {
    5 ?5 r* B) S, Q1 d* ?
  30.         initVectorArray();* w# A7 J; ~! w# e; O
  31.         printf("%d\n",eva('+',5,6));
    1 Z& F3 X7 J/ I1 @  R( I  z
  32.         printf("%d\n",eva('-',5,6));
      p: j4 n4 i$ q+ J: S) d

  33. : @2 b6 Q8 f: ~$ X+ G- ?: H
  34.         system("pause");1 {) Y" i; H+ _4 e% \2 \6 {  z7 c
  35.         return 0;
    ! L: ]8 F( o6 f/ r: W
  36. }
复制代码
5 i, j: ~$ j( o7 n5 ~/ r1 h
7 E' B- A' ]7 }* Q% V" `( \! W: N
收藏 评论2 发布时间:2020-9-5 22:44

举报

2个回答
sincomaster 回答时间:2020-9-5 22:51:21
以前这只见过这种:9 W4 N4 O0 D; K' v8 y
typedef unsigned int uint_8;
( e1 S$ r3 U3 i5 [3 [5 b: S9 s/ P4 V8 U3 l# o( m* z1 j3 J2 O+ O
uint_8 x,y;
; b; t* t; P  Q/ ?
! l7 {1 Z& \/ Utypedef 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;
; A9 k4 P' N, r- s7 f" u
: I  D6 _' C) t看来还是太菜了$ ]+ B! I0 Q3 i  Q5 R8 b
5 y$ m# i7 ?& ?( H6 E
ltbo4b8d6e 回答时间:2020-9-7 14:50:21
你这个是c++?

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版