C语言在调用函数时的形参与实参类型不匹配是C语言传统上最大的漏洞。

函数调用时实参与形参类型应当保持一致。如果不一致,编译器可能会给出相应的Warning,程序还是可以执行。因为编译器会进行隐含的转换,转换过程中可能会造成精度丢失。比如形参为int类型,实参为double类型,编译器隐式转换将double转换为int时会造成精度丢失。

#include<stdio.h>
int sum(char ,char);int main()
{sum(1,2);return 0;
}
int sum(char a,char b)
{int ret;ret=a+b;printf("%d",ret);
}

在上面的测试代码中,sum函数给定的形参为char类型,然而实参为int类型。在调用sum函数时编译器将char类型提升为int类型。

编译器没有给出Error,也没有给出相应的Warning。程序还是可以执行,并且正确输出3。

C语言函数调用参数类型不匹配相关推荐

  1. c语言函数调用参数调用的太少,浅谈C语言函数调用参数压栈的相关问题

    参数入栈的顺序 以前在面试中被人问到这样的问题,函数调用的时候,参数入栈的顺序是从左向右,还是从右向左.参数的入栈顺序主要看调用方式,一般来说,__cdecl 和__stdcall 都是参数从右到左入 ...

  2. c语言函数参数压栈,函数调用压栈 浅谈C语言函数调用参数压栈的相关问题

    想了解浅谈C语言函数调用参数压栈的相关问题的相关内容吗,在本文为您仔细讲解函数调用压栈的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:函数调用压栈,下面大家一起来学习吧. 参数入栈的顺序 ...

  3. argument type mismatch 参数类型不匹配

    argument type mismatch 参数类型不匹配 开发接口时,遇到了一个错误,记录下: java.lang.IllegalStateException: argument type mis ...

  4. c语言函数参数类型检查,内联函数在编译时是否做参数类型检查?

    先说宏和函数的区别: 1. 宏做的是简单的字符串替换(注意是字符串的替换,不是其他类型参数的替换),而函数的参数的传递,参数是有数据类型的,可以是各种各样的类型. 2. 宏的参数替换是不经计算而直接处 ...

  5. c 语言重载参数类型不同重载和,C++基础学习之函数重载的简单介绍

    前言 我们在平时写代码中会用到几个函数但是他们的实现功能相同,但是有些细节却不同.例如:交换两个数的值其中包括(int, float,char,double)这些个类型.在C语言中我们是利用不同的函数 ...

  6. c语言函数参数类型格式化,格式化输出的几种方法 主要介绍format函数的用法

    1 str自带函数格式化输出 rjust() ljust() center() zfill() zfill是补齐零 介绍: rjust(...) S.rjust(width[, fillchar]) ...

  7. r语言的runmed函数_R语言 函数参数的局部匹配验证(match.arg)

    Argument Verification Using Partial Matching Description match.arg matches arg against a table of ca ...

  8. Mybatis传入参数类型不匹配导致的报错:

    1.先来看错误异常: com.cfc.common.utils.TranFailException: nested exception is org.apache.ibatis.reflection. ...

  9. c语言函数调用参数太少,调用input_message的参数太少在主函数中 是神马意思 大神们帮帮我...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /*日期结构体类型*/ struct date { int year; int month; int date; }; /*图书证结构体类型*/ #inc ...

  10. VBA中byref类型不匹配 ByRef Argument Type Mismatch错误

    VBA中子函数调用时出现如下错误:"ByRef Argument Type Mismatch",(参数类型不匹配)代码如下: Function MainFunc()Dim a, b ...

最新文章

  1. 实验三:实现一个大素数生成算法
  2. 由于应用universal link校验不通过_垃圾吊称重校验砝码2000kg市场行情分析
  3. NetBeans 7 Python 又回来了
  4. OAuth2.0的四种授权方式
  5. 成功抓取豆瓣读书的所有书籍
  6. 五指棋,贪吃蛇,中国银行ATM源码链接
  7. mysql ado.net 实体数据模型_Visual Studio2017中如何让Entity Framework工具【ADO.NET实体数据模型】支持MYSQL数据源...
  8. ReadWriteLock读写文件
  9. java怎么录入4位会员号_【Java】录入会员号会员生日会员积分等会员信息,并判断录入的会员号是否合法,具体如下图...
  10. 第一篇SCI (IF5),心得交流(写的字数很多),希望多多交流!
  11. 模仿作业帮、猿题库搜题功能(包含图片文字识别)
  12. java。用类描述计算机中CPU的速度和硬盘的容量。要求Java应用程序有4个类,名字分别是PC、CPU、HardDisk和Test,其中Test是主类。
  13. python改文件夹名称_Python 批量修改文件夹名称
  14. 盘点愚人节各大网站彩蛋,谁最爱恶搞?
  15. FPGA 视频处理 FIFO 的典型应用
  16. 软件测试报告编写指南
  17. Temporary failure in name resolution错误解决方法
  18. 如何下载宝坻区卫星地图高清版大图?
  19. 使用腾讯云轻量香港搭建rinetd端口转发服务实现SSH加速
  20. 计算机怎么取消用户密码,怎么取消开机密码:计算机开机进入Windows时的开机密码怎么取消?...

热门文章

  1. Linux常用命令——tac、bc
  2. Erlang中的RSA签名
  3. Android网络多线程断点续传下载
  4. 苹果+beta+软件测试计划,自讨苦吃:加入苹果Apple Beta版软件计划之后
  5. 计算机专业国培总结,2016年信息技术教师国培心得体会(2篇)
  6. fastdfs 集群 java,第四套:FastDFS 分布式文件系统集群与应用(视频)
  7. markdown编辑器 语法示例
  8. SpringCloud Alibaba之Sentinelt组件
  9. java的维护_天了噜,Java 8 要停止维护了!
  10. vue style.css,vue * !!vue-style-loader!css-loader?