Question: c语言如何实现函数重载

Background:c语言中不允许有同名函数,因为编译时函数命名是一样的,不像c++会添加参数类型和返回类型作为函数编译后的名称,进而实现重载。

Method:

1. 使用函数指针来实现

2. 重载函数使用可变参数,方式如打开文件open函数

3. gcc有内置函数,程序使用编译函数可以实现函数重载

Example:

使用函数指针来实现。

#include

void func_int(void * a)

{

printf("%d\n",*(int*)a); //输出int类型,注意 void * 转化为int

}

void func_double(void * b)

{

printf("%.2f\n",*(double*)b);

}

typedef void (*ptr)(void *); //typedef申明一个函数指针

void c_func(ptr p,void *param)

{

p(param); //调用对应函数

}

int main()

{

int a = 23;

double b = 23.23;

c_func(func_int,&a);

c_func(func_double,&b);

return 0;

}

Result:

23

23.23

Summary:

c语言通过函数指针来实现函数重载,重载的函数不能使用同名称,只是类似的实现了函数重载功能。

c语言如何实现函数修改,c语言如何实现函数重载相关推荐

  1. c语言学生学籍管理修改,C语言课设之学生学籍管理系统.doc

    C语言课设之学生学籍管理系统.doc 题目学生学籍管理系统 目录一.个人简介.二.报告摘要.三.报告目录.四.报告正文. 1.系统需求分析 2.系统总体设计 3.系统详细设计六.总结. 二.报告摘要 ...

  2. pandas:案例详解 rename函数 修改列名和行名

    pandas:案例详解rename函数 修改列名和索引 rename函数简介 0 构建学习数据 1 修改索引两种方式 2 修改列名两种方式 3 是否替换原列表 3 pandas 字母转换大小写 3 使 ...

  3. R语言使用fs包的file_info函数查看文件元信息(属性信息)、使用file_chmod函数修改文件的权限、使用file_chown函数修改文件的所有者

    R语言使用fs包的file_info函数查看文件元信息(属性信息).使用file_chmod函数修改文件的权限.使用file_chown函数修改文件的所有者 目录

  4. R语言ggplot2可视化:修改已经创建的ggplot2可视化对象进行自定义的修改、使用ggplot_build函数更改已经创建的可视化结果

    R语言ggplot2可视化:修改已经创建的ggplot2可视化对象进行自定义的修改.使用ggplot_build函数更改已经创建的可视化结果 目录

  5. R语言dplyr包mutate_if函数修改所有满足条件的数据列的内容实战

    R语言dplyr包mutate_if函数修改所有满足条件的数据列的内容实战 目录 R语言dplyr包mutate_if函数修改所有满足条件的数据列的内容实战

  6. 【C 语言】一级指针 易犯错误 模型 ( 判定指针合法性 | 数组越界 | 不断修改指针变量值 | 函数中将栈内存数组返回 | 函数间接赋值形参操作 | 指针取值与自增操作 )

    文章目录 一.判定指针合法性 二.数组越界 三.不断修改指针变量值 四.函数中将栈内存数组返回 五.函数间接赋值形参操作 六.指针取值与自增操作 一.判定指针合法性 判定指针合法性时 , 必须进行如下 ...

  7. c语言函数重用,C语言第10讲--程序重用之函数(修改2).ppt

    C语言第10讲--程序重用之函数(修改2) 主讲老师:刘志强 第十讲 程序重用之函数 数学函数及其调用 C语言提供了一些可以用于计算各种不同数学函数的库函数,通过调用它们可进行相应的计算. 例: 要使 ...

  8. C语言学习笔记--预编译/宏定义/数组/参数传递/函数指针

    目录 预编译 值传递.指针传递.引用传递 数组 typedef 函数指针 预编译 预编译又叫预处理.预编译不是编译,而是编译前的处理.这个操作是在正式编译之前由系统自动完成的.#define 和 #i ...

  9. 【C 语言】C 项目开发代码规范 ( 形参合法性判断 | 函数返回值局部变量 | 函数中不用全局变量 | 函数中使用局部变量接收形参 | 函数返回值 | 形参作返回值 | 形参返回值处理 )

    文章目录 一.C 项目开发代码规范 一.C 项目开发代码规范 上一篇博客 [C 语言]字符串模型 ( 键值对模型 ) 中 , 完成了字符串的 键值对 查找功能 , 代码不太规范 ; C 项目开发代码规 ...

最新文章

  1. Style Report中报表组件的使用场景简析
  2. zigbee协议栈学习(二)
  3. 图像处理:镜头频率(衍射极限) 和 相机采样:显微镜的采样定理
  4. C语言实现测量数据处理,求出实际值的范围
  5. 【采用】机器学习在金融大数据风险建模中的应用
  6. 微信中两大典型微服务案例
  7. 青铜到王者,看看你的MySQL数据库是什么段位,如何提升?
  8. 前端利器!让AI根据手绘原型生成HTML | 教程+代码
  9. python编程设计圆柱_《学习PYTHON—做个有编程能力的设计师》怎么样_目录_pdf在线阅读 - 课课家教育...
  10. 计算机学术会议英语作文,计算机专业资料——重要国际学术会议
  11. 游戏多开检测的几种实现方法及破解方法参考
  12. 17. Zigbee应用程序框架开发指南 - 使用Ember AppBuilder设计应用程序
  13. 区域生长算法及其实现
  14. idea彩虹括号+区域代码高亮插件
  15. C# 改变鼠标样式
  16. 怎么修改html的空格大小,css设置空格宽度间距样式
  17. Oracle备份与恢复
  18. 分享个免费的货币汇率API
  19. snidel 2014春夏新品 画册款切换材质连衣裙
  20. 有关秩的等式和不等式

热门文章

  1. Java | 学习系列 Java1.8 新特性详解( 包含学习代码 )
  2. C++ 名字空间(namespace)
  3. linux添加ipv6静态路由命令,Debian下配置IPV6和静态路由
  4. Python123.io---十二星座
  5. Vue中的computed是什么?怎么用?
  6. 业绩快报|高通的业绩和指引都不乐观,但预计今年能与苹果达成和解
  7. php 截图ppt文件,PPT转图片你还在靠截图?一键即可导出,这个方法太逆天了吧...
  8. 618 战报的谜面,与荣耀解码的谜底
  9. scp带密码拷贝文件
  10. Python |(爬虫 )爬取当当网书籍信息存到Excel中