OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2444|回复: 11

函数的使用

[复制链接]

53

主题

167

帖子

0

精华

高级会员

Rank: 4

积分
840
金钱
840
注册时间
2016-8-23
在线时间
116 小时
发表于 2019-3-8 15:57:10 | 显示全部楼层 |阅读模式
1金钱
我最近接手了一个同事的项目工程,我看他的程序总感觉有些地方是多余的,可以删掉。但是不知道会不会对其他地方有影响。比如以下:
#include "led.h"

void LED_Event(void);     //这个定义我总觉得是多余的

void LED_Event(void)
{
      if (Mic_Mute == 1)
      {
             LedOff(B_LED);
       }
      else
       {
             ......
       }
}

int main(void)
{
    while(1)
    {
          ......
          LED_Event();    //调用
          ......
     }
}

最佳答案

查看完整内容[请看2#楼]

这个是声明,函数体是定义,你如果将函数体放在调用者(此处是main)的后面,你就必须先申明,否则编译会提示未定义。此处可以删除。
天道酬勤
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
434
金钱
434
注册时间
2013-3-18
在线时间
82 小时
发表于 2019-3-8 15:57:11 | 显示全部楼层
这个是声明,函数体是定义,你如果将函数体放在调用者(此处是main)的后面,你就必须先申明,否则编译会提示未定义。此处可以删除。
回复

使用道具 举报

53

主题

167

帖子

0

精华

高级会员

Rank: 4

积分
840
金钱
840
注册时间
2016-8-23
在线时间
116 小时
 楼主| 发表于 2019-3-8 17:12:34 | 显示全部楼层
holy404290384 发表于 2019-3-8 16:19
这个是声明,函数体是定义,你如果将函数体放在调用者(此处是main)的后面,你就必须先申明,否则编译会提 ...

你说的这点我知道,我只是担心删了会不会影响程序的性能之类的
天道酬勤
回复

使用道具 举报

3

主题

154

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
434
金钱
434
注册时间
2013-3-18
在线时间
82 小时
发表于 2019-3-8 18:06:17 | 显示全部楼层
紫气东升 发表于 2019-3-8 17:12
你说的这点我知道,我只是担心删了会不会影响程序的性能之类的

顶多就是影响编译的速度,与性能无关
回复

使用道具 举报

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17786
金钱
17786
注册时间
2018-3-3
在线时间
523 小时
发表于 2019-3-8 18:21:27 | 显示全部楼层
不影响
回复

使用道具 举报

57

主题

1680

帖子

3

精华

资深版主

Rank: 8Rank: 8

积分
4307
金钱
4307
注册时间
2018-6-30
在线时间
808 小时
发表于 2019-3-8 18:21:45 | 显示全部楼层
去掉不影响,你可以测试下嘛
业精于勤荒于嬉;行成于思毁于随!
回复

使用道具 举报

15

主题

78

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
409
金钱
409
注册时间
2017-2-21
在线时间
159 小时
发表于 2019-3-8 18:49:57 | 显示全部楼层
多试试就知道啦。实践出真知
回复

使用道具 举报

3

主题

1907

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4106
金钱
4106
注册时间
2018-8-14
在线时间
696 小时
发表于 2019-3-8 19:38:43 | 显示全部楼层
void LED_Event(void);     //这个定义我总觉得是多余的

没这一条, 其它C文件就调用不了LED_Event(), 如果你确定其它C文件确实不会调用LED_Event, 那就删呗

这类声明应该是放在led。h, 但好奇的是你为什么要删它? 它又不占内存
回复

使用道具 举报

2

主题

685

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3448
金钱
3448
注册时间
2017-7-4
在线时间
869 小时
发表于 2019-3-8 23:41:22 | 显示全部楼层
这是个人良好的编码习惯吧,函数、变量使用步骤,声明->定义->使用。
回复

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2019-3-9 05:52:01 | 显示全部楼层
这个是代码风格的问题,我一般都是这么写的,个人认为这种写法比较规范,当函数比较多的时候,前面全部写上声明,这样一看就知道这个文件局部函数有多少,而且我一般还会加上static,如果要给外部调用,就放在.h里面,局部的我是不会放在.h里面的,个人看法
回复

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2019-3-9 09:43:04 | 显示全部楼层
没准一开始  你同事是将这个函数放在主函数下面的,然后才有的声明,完事他又把函数移上去又忘记删除声明了
猪猪熊呢?
回复

使用道具 举报

15

主题

866

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7573
金钱
7573
注册时间
2016-11-30
在线时间
643 小时
发表于 2019-3-9 13:10:19 | 显示全部楼层
Acuity 发表于 2019-3-8 23:41
这是个人良好的编码习惯吧,函数、变量使用步骤,声明->定义->使用。

同意!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 21:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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