当前位置: 首页 > news >正文

C语言的函数调用,允许参数缺省和乱序

正常调用:

// func.c
#include <stdio.h>int func(int i1, int i2, double d1, int i3, double d2, int i4) {printf("i1 = %d, i2 = %d, d1 = %lf, i3 = %d, d2 = %lf, i4 = %d\n", i1, i2, d1, i3, d2, i4);return 0;
}
// test.c
extern int func(int i1, int i2, double d1, int i3, double d2, int i4);int main() {func(1, 2, 10.1, 3, 20.1, 4);return 0;
}
gcc test.c func.c 
./a.out 
i1 = 1, i2 = 2, d1 = 10.100000, i3 = 3, d2 = 20.100000, i4 = 4

参数缺省调用:

// test.c
// extern int func(int i1, int i2, double d1, int i3, double d2, int i4);
extern int func(int i1, int i2);int main() {// func(1, 2, 10.1, 3, 20.1, 4);func(1, 2);return 0;
}
gcc test.c func.c 
./a.out 
i1 = 1, i2 = 2, d1 = 0.000000, i3 = 1382715160, d2 = 0.000000, i4 = -2065489456

参数乱序调用:

// test.c
// extern int func(int i1, int i2, double d1, int i3, double d2, int i4);
// extern int func(int i1, int i2);
extern int func(int i1, double d1, double d2, int i2);int main() {// func(1, 2, 10.1, 3, 20.1, 4);// func(1, 2);func(1, 10.1, 10.2, 2);return 0;
}
gcc test.c func.c 
./a.out 
i1 = 1, i2 = 2, d1 = 10.100000, i3 = 737168744, d2 = 10.200000, i4 = 1373962720

http://www.xdnf.cn/news/714259.html

相关文章:

  • 通配符(Wildcard)与正则表达式(Regular Expression)的关系及区别
  • Python中re模块结合正则表达式的应用
  • 企业文件乱、传输慢?用群晖 NAS 构建安全高效的共享系统
  • Codejock ToolkitPro 与 BCGControlBar Pro 深度对比
  • 太阳系运行模拟程序-html动画
  • 宝塔安装WordPress程序
  • Rust入门之并发编程基础(一)
  • 【无标题】C++23新特性:支持打印volatile指针
  • 字节开源BAGEL可文生图、图像理解、图像编辑
  • 秒杀/高并发解决方案+落地实现
  • 【Pandas】pandas DataFrame duplicated
  • docker运行centos提示Operation not permitted
  • 快速了解 GO之接口解耦
  • 涨薪技术|0到1学会性能测试第89课-性能测试设计
  • R语言基础| 数据基本管理与操作
  • #Js篇:两个前端应用通过postMessage传递file对像
  • 02.K8S核心概念
  • JVM Full GC 频繁问题排查、优化及解决方案
  • ansible template 文件中如果包含{{}} 等非ansible 变量处理
  • git reset --hard HEAD~1与git reset --hard origin/xxx
  • CentOS_7.9 2U物理服务器上部署系统简易操作步骤
  • 人工智能100问☞第36问:什么是BERT?
  • 第5讲、Odoo 18 CLI 模块源码全解读
  • 跨架构镜像打包问题及解决方案
  • 棋盘问题(放置棋子)
  • ranges属性验证
  • 逻辑回归详解:从原理到实践
  • notion搭建个人知识管理库
  • 利用Python制作环保志愿者招募海报
  • 设计师如何搭建自己的素材库?