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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
函数太多了  如果想根据情况调用不同的函数太麻烦了   
5 V- j, ~# T$ J3 l如果把函数排上序号用变量的方式调用不知道可不可以
2 H8 }- h6 ]6 U  ]0 n请问下各位大侠还有没有什么方法可以方便调用的谢谢8 m( R; \7 C# k  D& B) v* F( m
; ~! |+ y% N2 {" |- T* u. E: K
void delay1()
/ k3 H" C, _0 R; o6 V/ Q  D# F     {delayus2x(218 );}
% E' M+ V# n# M; Z/ l, Evoid delay2()
: e& H9 u0 k. L7 }# t7 [1 |     {delayus2x(223 );}0 M: K" @# s. z" b
void delay3()6 m1 b1 C3 ?5 P
     {delayus2x(229 );}
7 O$ D" j# L5 Fvoid delay4()
& P& Y# `5 e7 ]7 k/ ~% l: h2 c     {delayus2x(234 );}6 S3 B  u& L- ~  k3 Z
void delay5()( W; U: I/ D# y0 ?0 j+ n
     {delayus2x(240 );8 l, u4 K+ \) {; G6 x) I9 g. Z, ~

2 T1 R# `% v* J3 s- O0 ]( T9 G, T* B! W& r
7 g5 E3 l" \% g/ D; `
//---------------------------------
6 y: u7 i9 m2 O* m
6 r, H# U5 Y0 }, Fvoid main()     * E& v; p$ k1 s
{unsigned char a,b,c,d,e;1 ?- L$ h! O" X' K' q
while(1): V7 @/ q7 ?& d0 R, }% l# K
{        
3 p- i" ]$ `, j5 f6 V, t) \% Va=1;  ]  R; _3 v$ q" I
" j% _! i; D/ j
delay a ();        //   a是个变量     函数太多了   这个调用方法可不可以    或者还有没有其他的办法
8 ^! {7 |( I( @
! k. f7 y; e; ?" `3 J; V2 h* x( d2 H( [

' g! o+ b5 r- X2 V$ Q8 U3 ]
  b6 J) R* m; a. |4 I' z* H( Y: U' q4 b% B# p
6 Z8 ~% ~" |* N# t4 R0 @
3 g3 y% m7 X- I% u: i$ I3 A1 d
}                                   
. N' p& W0 z, L0 R8 n}4 v6 l, p! u" b9 D* C; ~

" b; z4 K! O& m* x8 p2 T

该用户从未签到

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

2 a! C+ p# U$ f9 @$ W- ]! r不可以,每一个函数名需要单独声明。delay a()就是一个单独的函数,(delay a)是一个整体的函数名,编译时不可能把变量a的值赋给delay a()里面的a。
  • TA的每日心情
    开心
    2023-5-15 15:14
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2020-3-5 16:57 | 只看该作者
    1 Z6 f/ H5 {5 D
    //你可以把所有的功能函数放到一个函数exp()里面,比如说:
    % k% c% m' \$ q# t) G; iuchar a;
    - w2 Z, u" `/ P8 }. e0 e( fvoid exp()+ y' `( x( H9 N8 ]0 l
    {" V1 d  Q8 o" ^! V/ f0 {7 n
    if (a==1)exp1();3 D9 C8 `5 g% ^: o. D' R. `
    if(a==2)exp2();" `0 x# M7 }! l: y/ @0 w: R
    if(a==3)exp3();
      g& h8 ]1 @& N}
    + Y! u6 A% `1 k; Rvoid main()     2 c" H0 D8 Q- B) y, v, p* g
    {
    " a! y; }) K' cwhile(1)
    ' A* P& u2 }$ K4 V7 C3 z8 N{
    1 l% x- a8 y' w0 Zif(Key==1){a=1;exp();}
    ! x+ l' n* N, e. _5 ?if(Key==2){a=2;exp();}+ _( p* F% Q* k) K2 i# V
    if(Key==3)(a=3;exp();}  ?4 U! S8 }2 _, p( p8 Y9 x) ]8 O
    }
    " g9 Z$ p" E6 K/ [+ y}
    4 `# m& z( \7 o1 r$ O- p//先定义变量a,然后在主函数里面把变量a放到exp()函数里面去选择,应该能达到你要的效果,Key可以定义为对应按键的键值。switch语句也可以做到。但是这样你也得记得每一个编号对应函数的功能,不如直接调用不同的函数。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

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

    EDA365公众号

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

    GMT+8, 2025-10-11 07:28 , Processed in 0.140625 second(s), 23 queries , Gzip On.

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

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

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