找回密码
 注册
关于网站域名变更的通知
查看: 396|回复: 2
打印 上一主题 下一主题

请教大侠关于:一个C语言函数调用问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-3-5 09:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
函数太多了  如果想根据情况调用不同的函数太麻烦了    # _( Q& a  b/ W1 s
如果把函数排上序号用变量的方式调用不知道可不可以) H+ n% G: P4 I
请问下各位大侠还有没有什么方法可以方便调用的谢谢4 {6 Z% I. E1 j/ K
' u- [" Q! x# p3 d2 _/ O# G
void delay1()& S' n. ^( x# A; @( O- u' a5 i/ R
     {delayus2x(218 );}
1 u6 L4 o/ ]$ L8 ]4 P- Wvoid delay2()
# Z0 o& K' d& M8 j" Q     {delayus2x(223 );}
5 ^5 n) z5 R+ C9 u9 [void delay3()
" _# m& Y. a+ F     {delayus2x(229 );}% _2 y0 O# ]! ^" i
void delay4()
" h8 Y& V- U& n7 M7 Z) }3 a     {delayus2x(234 );}
9 B& j8 u, v3 f/ C* Vvoid delay5(), _3 @$ Z5 a. d0 x- p+ x- b
     {delayus2x(240 );
0 a' Y( D. i1 d$ ?! I; m4 W8 [8 P( s3 T( r( b- Y3 I3 Z

0 C# K0 r1 q$ ?$ K) \) }% q: i
  D, C4 e) B8 Q) F4 h  H//---------------------------------# R, b) \; Y5 }3 k9 v6 r1 T( ^6 J0 l

3 U/ B$ e! ^, W2 @$ d1 n8 Nvoid main()     + z+ ~% Y3 R: g2 E! ~
{unsigned char a,b,c,d,e;3 F: o' E: p# w$ ]2 V
while(1)9 H; f# M3 \0 G4 s3 o) h
{        
, ?6 m# R: g5 j5 u) Ga=1;1 _9 n- M7 d0 Q6 y0 F2 _# C

/ E1 @# j9 }2 L% adelay a ();        //   a是个变量     函数太多了   这个调用方法可不可以    或者还有没有其他的办法/ X- P  D, _1 u& N2 O6 C  V, P

: n8 ^3 f4 X0 K) d7 Q9 \# H6 M8 B2 S4 N) _0 @7 }5 Y8 t/ m6 o% ~
* J$ Q" g( S* l  K$ [, e
/ r, W2 D' r( B$ J9 T
- a* X! k$ e. }+ s

, v& D/ ~! A- h1 ^" f- y  e# L# }3 N4 Y7 @' X& q2 w; ?: K
}                                   
3 h  m# J( E+ w: W}+ S4 ~( a2 d& \# b' _$ w, Y

6 E+ T$ _6 Y; Z0 ~0 Y

该用户从未签到

2#
发表于 2020-3-5 11:10 | 只看该作者

- W0 `; _) k1 K5 E; ]" s7 y不可以,每一个函数名需要单独声明。delay a()就是一个单独的函数,(delay a)是一个整体的函数名,编译时不可能把变量a的值赋给delay a()里面的a。
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2020-3-5 16:57 | 只看该作者

    ; ~# j& G! b2 Z: ~) s. X1 h' V//你可以把所有的功能函数放到一个函数exp()里面,比如说:
    ' [9 f. p3 x. |uchar a;4 |. \& B$ V" C2 I9 _. U8 l, c4 m
    void exp()& A, g3 I0 ]/ W4 D8 Y' @
    {8 O; G$ J8 M, L: D7 Q, z
    if (a==1)exp1();
      ]8 B2 ^" A, m+ }! w$ T7 qif(a==2)exp2();3 C* g8 ~2 O9 Y3 E- ^, n
    if(a==3)exp3();# i  V8 M+ N9 u3 G4 J
    }
    : C. ~5 g% ?! Y* [void main()     
    9 _" b" ^, o* S7 ?{
    , R- c2 Z; {0 W5 ^& `5 W. D( T6 jwhile(1)$ @8 h& Z( i" o+ N1 D6 L0 V
    { * y- C6 |" n  w. m+ @- W0 X
    if(Key==1){a=1;exp();}! S: B# f( _4 g& J
    if(Key==2){a=2;exp();}% T$ M, Y1 A6 X5 [, o& M
    if(Key==3)(a=3;exp();}
    % `  a% r/ B: o7 Y2 e# D5 s/ i}
    8 k' M& q6 j/ F& Z}
    $ g: [4 P: c5 s) p  o! s& Z% m//先定义变量a,然后在主函数里面把变量a放到exp()函数里面去选择,应该能达到你要的效果,Key可以定义为对应按键的键值。switch语句也可以做到。但是这样你也得记得每一个编号对应函数的功能,不如直接调用不同的函数。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-18 20:40 , Processed in 0.125000 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表