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

typedef的非寻常用法??

[复制链接]
sincomaster 发布时间:2020-9-5 22:44
最近在(深入理解C指针)的书上看到这么一节代码,) w: ]5 s& Z- {
对于我这新手来说,是没见过的!/ x: k% J8 S& b* {
大家对这个用法熟吗?能说说你们的意见吗?/ r' s7 O$ \% C) {# N/ y% O
  1. typedef int (*operation)(int, int);; {* B" c/ b# C" Z: @6 S" S' i0 V
  2. typedef int (*fptrOperation)(int,int);! D7 L. Z7 m  g5 |5 [% z/ Z* t
  3. operation vector[128] = {NULL};1 P$ b, r  k! ~8 Z
  4. 8 y  S+ ~4 L0 A* z; {, T( F1 |6 j
  5. int add(int num1,int num2)1 z0 q( g) b( E* U
  6. {
    9 P0 _1 _) S& n1 H" O
  7.         return num1 + num2;
    0 u4 E7 F6 V6 V( A( f/ A
  8. }
    & N9 E# @9 ^3 f; [. t5 }1 p! _: a

  9. 0 n; Y' O* U$ J( S6 q. P- F5 u
  10. int sub(int num1,int num2)
    % k6 e: i( |3 S( m
  11. {' r% L: H3 l0 a/ b$ R
  12.         return num1 - num2;' F# }: G6 ~- X, q. W
  13. }. |% \2 B1 a  H, X9 @5 E+ X/ Y
  14. + Z( y: |4 I; @
  15. void initVectorArray(void)
    ' F9 K9 K) D4 G8 {, f6 Z$ R
  16. {
    7 h  e  Q# C( k4 M: k
  17.         vector['+'] = add;
    / b) B* H- S+ g' n7 Q1 t" Y
  18.         vector['-'] = sub;; l6 i; Y% z* V. _
  19. }2 N3 a- Y3 I+ f. h

  20. . Z* }* L1 y0 ^
  21. int eva(char opcode,int num1,int num2)
    0 }! Y& ~* v0 G
  22. {
    4 S* |1 K! Z2 e0 {( _$ B
  23.         fptrOperation operation;/ |$ `  V7 [1 e- ?
  24.         operation = vector[opcode];5 b; k6 E5 o4 g7 f; V  ?
  25.         return operation(num1,num2);
    8 H6 x: P+ N  u
  26. }+ W9 S+ R0 x! e2 P2 G. `

  27. 7 T$ t* Y8 m( b+ S3 |9 ?3 X
  28. int main(void): t  q) p5 g% ]% H  v, c6 r. `
  29. {9 ~/ k: _5 F. s2 Z4 I
  30.         initVectorArray();
    2 f; B- T& Q( w& h6 w6 g
  31.         printf("%d\n",eva('+',5,6));* D- G! E# x& L) F# h
  32.         printf("%d\n",eva('-',5,6));
    + O, w0 @9 e4 [
  33. 1 J% e8 e6 f8 z. t( q
  34.         system("pause");
    1 q7 ^- f0 O& {& ]4 J
  35.         return 0;/ g  @& m4 e& ]$ U) r/ u
  36. }
复制代码

3 l9 P' J  V+ P+ }
8 a: b/ d# K- R) [3 l% I9 z5 u) [
赞 收藏 评论2 发布时间:2020-9-5 22:44

举报

2个回答
sincomaster 回答时间:2020-9-5 22:51:21
以前这只见过这种:3 p- P- F  c- d0 v3 x
typedef unsigned int uint_8;
" S! g1 v. t' ^: j2 g: G3 l& H# B. h5 K/ g$ O
uint_8 x,y;, Q  D# y* r% e+ I8 \

* a) t5 Y8 x6 B0 ^# g9 c6 jtypedef struct a) g5 R! T5 K( S1 q
{! ~" Z; C5 E$ w
......
! ?% n+ n) k6 U  L}A;  f  g, P- K- n. ?4 P$ J5 }
1 d, v! F: V! T2 b/ L8 z* e* M: y
看来还是太菜了, n4 p+ e1 S9 f' L
1 @* M6 u: s! |4 |
ltbo4b8d6e 回答时间:2020-9-7 14:50:21
你这个是c++?
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版