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

typedef的非寻常用法??

[复制链接]
sincomaster 发布时间:2020-9-5 22:44
最近在(深入理解C指针)的书上看到这么一节代码,( V: o, {/ _8 Q1 A
对于我这新手来说,是没见过的!
# L/ O" w1 s2 @4 v大家对这个用法熟吗?能说说你们的意见吗?
9 ^; t3 e" x9 i1 S
  1. typedef int (*operation)(int, int);
    , t& G* y. z  y  o9 o
  2. typedef int (*fptrOperation)(int,int);
    ) T1 d* M( O# a5 m: ?
  3. operation vector[128] = {NULL};( Z- h! [, h" X  T
  4. 9 b  j  a2 n9 m3 |0 S6 H
  5. int add(int num1,int num2)
    ( C/ n9 R4 z2 W/ D2 [7 w! h5 ~
  6. {
    ; I& J" _& Y  q; E& `4 ^
  7.         return num1 + num2;
    ' b$ W' S, R: S
  8. }
    5 u7 Y1 K' B# R' i) `5 ~, p  c" Q

  9. % y& \! ]( f* W' O3 Y, i
  10. int sub(int num1,int num2)
    ( i5 v, X' T' ]. o$ {8 r+ d
  11. {
    2 P' K. O* I8 w1 M4 e1 X6 g
  12.         return num1 - num2;
    8 j/ h3 I  n, A  |# h# j# G( q1 D
  13. }" D7 ?6 \6 x6 l$ B' y" b

  14. ' }) ]0 j: P* f9 ~: @2 y  s
  15. void initVectorArray(void)
    ' P3 V% j, @: a8 v+ g
  16. {# G! c* K  Y- m
  17.         vector['+'] = add;0 Z3 P/ }0 b" r" }. L" S. f! W9 d7 C
  18.         vector['-'] = sub;/ [) v9 E3 g! @; N& |. D
  19. }
    # z% g0 p* o* x9 a% I
  20. , B# d7 l* ~5 D. i$ Z* H4 G" S+ s5 i# O7 d
  21. int eva(char opcode,int num1,int num2)8 y9 i5 |! j( n8 J% V
  22. {$ ]) p" N) z2 U6 z: v* h) o
  23.         fptrOperation operation;$ w5 r" w. I9 q8 x
  24.         operation = vector[opcode];9 y" j5 {, {: T3 V/ j
  25.         return operation(num1,num2);
    " X2 c. h( {: I; [9 ]+ m
  26. }
    / N& [! d6 ~& `+ A
  27. + m5 H1 r6 j( c. H3 {% l% m
  28. int main(void)
    9 |* p0 N% W; z; [6 |
  29. {' _) C$ B, q) m5 b; L
  30.         initVectorArray();
    + e! }" t5 Z- j2 E9 R) H+ s3 F0 C
  31.         printf("%d\n",eva('+',5,6));
    ( `: g/ W- o  Z% Q! y
  32.         printf("%d\n",eva('-',5,6));
    / w4 ^( G+ ?- Q* p  p' T6 g
  33. 3 ]2 p% l# `* E5 Q% I1 x+ [
  34.         system("pause");/ z) }- F5 q/ V5 {4 q! C
  35.         return 0;
    3 b' x/ R: c% w9 g
  36. }
复制代码

/ o% N, _  O; z) B. m( m: P6 E1 }% Q" t; m: t
收藏 评论2 发布时间:2020-9-5 22:44

举报

2个回答
sincomaster 回答时间:2020-9-5 22:51:21
以前这只见过这种:
) e. Z. Z9 c$ {& x. btypedef 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
{
/ b2 f. S3 {+ P/ L; p( M......, s$ y7 L) L* S5 y  j0 v0 C+ L" r
}A;  e" F' [5 I! o# E
3 Y7 _, O4 ~( [
看来还是太菜了0 k! B! S: o* w2 K

7 n5 ^# Y* Y" P& h7 U! S, q
ltbo4b8d6e 回答时间:2020-9-7 14:50:21
你这个是c++?

所属标签

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