黑马程序员技术交流社区

标题: 1233333333333333333333333 [打印本页]

作者: 温天恩    时间: 2014-7-14 08:43
标题: 1233333333333333333333333
本帖最后由 温天恩 于 2014-12-11 16:09 编辑

12333333333333333333333333



作者: ⒈心只霸占沵    时间: 2014-7-14 08:59
不可以,C语言中没有重载
作者: 温天恩    时间: 2014-7-14 09:02
⒈心只霸占沵 发表于 2014-7-14 08:59
不可以,C语言中没有重载

哦,这样啊!
作者: ⒈心只霸占沵    时间: 2014-7-14 09:04
温天恩 发表于 2014-7-14 09:02
哦,这样啊!

但是C语言里分内部函数和外部函数,内部函数跟外部函数可以重名!
作者: 温天恩    时间: 2014-7-14 09:06
⒈心只霸占沵 发表于 2014-7-14 09:04
但是C语言里分内部函数和外部函数,内部函数跟外部函数可以重名!

内部函数和外部函数是不是指本文件内的函数和其它文件内的函数?
作者: ⒈心只霸占沵    时间: 2014-7-14 09:16
温天恩 发表于 2014-7-14 09:06
内部函数和外部函数是不是指本文件内的函数和其它文件内的函数?
  1. static和extern对函数的作用
  2. 函数可分为:内部函数和外部函数
  3. 外部函数:在本文件中定义的函数能被其他文件访问
  4. 内部函数:在本文件中定义的函数不允许其他文件访问,只允许本文件访问

  5. extern对函数的作用
  6. 1.完整的声明和定义一个外部函数
  7. 2.默认情况下的所有函数都是外部函数,所以extern可以省略
  8. 3.C语言中不允许有同名的外部函数

  9. static对函数的作用
  10. 1.声明和定义一个内部函数
  11. 2.整个程序中,允许不同文件有同名的内部函数

  12. 总结
  13. 1.不允许有同名的外部函数,无论同文件还是不同文件都不允许
  14. 2.同文件中不允许有同名的内部函数,但是不同文件中可以有同名的内部函数
  15. 3.可以有同名的内部函数和外部函数,即两个函数同名,但一个是外部函数,一个是内部函数
复制代码

作者: 愿望    时间: 2014-7-14 09:35
当然不可以啊 , 编译的时候就错了
作者: fantacyleo    时间: 2014-7-14 10:19
⒈心只霸占沵 发表于 2014-7-14 09:16

外部函数和内部函数可以重名不是lz所说的函数重载,因为无法直接访问内部函数
作者: 丶白菜你个小番    时间: 2014-7-14 14:29
C语言是不支持重载的,同一作用域内不能重名,但不同文件的函数可以重名加static限制作用域
作者: 温天恩    时间: 2014-7-14 16:46
⒈心只霸占沵 发表于 2014-7-14 09:16

很细致,非常感谢。第一遍C语言的视频看的没有你细致啊!
作者: 温天恩    时间: 2014-7-14 16:50
fantacyleo 发表于 2014-7-14 10:19
外部函数和内部函数可以重名不是lz所说的函数重载,因为无法直接访问内部函数  ...

这样啊,有点理解了,谢谢!
作者: Medwyn    时间: 2014-7-14 17:42
2L正解。
作者: yingzhuo1314    时间: 2014-7-14 20:03
c语言不支持函数重载。同一作用区域不可以有函数重名,但不同作用区域中允许函数重名。不同作用区域可以通过在不同文件中使用static实现。
作者: 温天恩    时间: 2014-7-14 20:11
yingzhuo1314 发表于 2014-7-14 20:03
c语言不支持函数重载。同一作用区域不可以有函数重名,但不同作用区域中允许函数重名。不同作用区域可以通 ...

知道了,谢谢!
作者: 周田金    时间: 2014-7-14 20:43
不可以~程序无法识别
作者: 小海    时间: 2014-7-14 21:59
其实你说的情况挺像OC中的类与子类中的同名方法的,结果是子类中与父类同名的方法会覆盖父类的同名方法 ,优先执行子类中的同名方法,叫做复写。
作者: zhs    时间: 2014-7-14 22:08
不可以,你说的java中的情况为重写,C语言没有继承特性,所以不可能重写。另C语言中是不允许重载的,即函数名只要相同,即使形参不同也不可以。
作者: الغيوم_ا    时间: 2014-7-14 22:57
不可以。
作者: 温天恩    时间: 2014-7-15 18:30
zhs 发表于 2014-7-14 22:08
不可以,你说的java中的情况为重写,C语言没有继承特性,所以不可能重写。另C语言中是不允许重载的,即函数 ...

简单扼要,讲这么清楚,谢谢了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2