• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

C语言函数同时占用求解决

韩梅梅 2020-11-05 浏览量:323
小白求助:电子琴播放器,这两个程序同时占用了函数,如何使他们都能赋值,不冲突
void delay  (unsigned char m)//控制频率延时      
  {
   unsigned i=3*m;
while(--i);   
}   
void delay(u16 i)
   {
        while(i--);
}

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 在C语言中,同一个文件下这样肯定不能通过编译,会提示重复定义的。

    如果是不同文件中,是有可能通过编译的。


    对此一般处理是改名,因为你的这2个函数的参数性质不同,所以可以分别改为

    void delayU8(unsigned char M)

    void delayU16(u16 i)

    • 发布于 2020-11-06
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:6
  • 需要改函数名称,如果不改是编译不过去的
    • 发布于2020-11-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 可定义其中一个为静态函数(static)
    • 发布于2020-11-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 我的想法是为啥不改个名字,这么做不是给自己增加麻烦吗


    • 发布于2020-11-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 先不说编译不通过,这么写函数,自己看不也很麻烦。

    这不是行不行的问题,这是不规范。

    • 发布于2020-11-05
    • 举报
    • 评论 0
    • 0
    • 0

  • 如果是单线程情形下,就不存在重入的问题,肯定是顺序执行的

    多线程情况下不能用软件延时,很不准,非要用则需要定义多个软件延时函数

    • 发布于2020-11-09
    • 举报
    • 评论 0
    • 0
    • 0

  • c语言不支持函数名相同的,c++是支持的,你需要更改其中一个delay函数的名字,改成delay_3X()就可以了,需要调用上面那个就使用delay_3x()调用就行了

    • 发布于2020-11-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

C语言函数同时占用求解决