c语言如何调用void函数返回值,C void函数,返回值
没有表达式的return语句:
void func(void) {
return;
}
在void函数中是完全合法的.带表达式的return语句的合法性取决于您正在使用的C语言的版本.
1990 C标准说:
A return statement with an expression shall not appear in a
function whose return type is void.
该标准的1999年和2011年版本都说:
A return statement with an expression shall not appear
in a function whose return type is void. A return
statement without an expression shall only appear in a function
whose return type is void.
这是一个约束,这意味着编译器必须为任何违反它的程序发出诊断(可能是非致命警告).
由于历史原因,C90允许返回语句在非void函数中没有表达式.前ANSI C没有void关键字,因此无法定义未返回值的函数.程序员会省略返回类型(默认为int)并简单地忽略它. C90规则允许这样的旧代码编译而不会出错.您仍然无法从非void函数返回值;如果调用者尝试使用(不存在)结果,则程序的行为是未定义的. 1999年的标准稍微收紧了规则.
你的程序的另一个问题是你在声明可见之前调用fun.根据C99及更高版本的规则,这是非法的(尽管编译器可能只是警告它).根据C90规则,这是合法的,但编译器将假定该函数返回int.您的程序的行为是未定义的,但您的void函数乐趣可能恰好表现为返回一个值,并且对它的调用可能恰好表现为使用该值.
C编译器对于某些错误往往相当宽松,因此旧代码(有时在第一个实际标准发布之前编写)不会被拒绝.但是你的编译器应该至少警告你关于return语句,可能还有关于无效调用的警告.你应该密切关注编译器警告;他们的待遇几乎与致命错误一样.您应该使用选项来增加编译器警告您的数量.如果您正在使用gcc,请使用-std = c90,-std = c99或-std = c11以及-pedantic来强制执行标准一致性.您可以添加-Wall-Wextra`以启用更多警告.
c语言如何调用void函数返回值,C void函数,返回值相关推荐
- c语言调用c 的库,C语言程序调用C库函数方法
C语言程序调用C 库函数方法,关键是函数名字解析问题. 其实实现起来不是很难. 使用关键字 extern \"C\" 可以使得C 编译器生成的函数名满足C语言的要求 例子如下: 链 ...
- C语言试题三十七之求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数。
1. 题目 请编写一个函数function,它的功能是:求除一个2×m整型二维数组中最大元素的值,并将此值返回调用函数. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中 ...
- c++语言中如果调用函数时,需要改变实参或者返回多个值,应该采取,C++综合练习题2...
C++程序设计综合练习题(二) 一.单项选择题 1. 静态成员函数没有() A. 返回值 B. this指针 C. 指针参数 D. 返回类型 2. 假定AB为一个类,则执行"AB a(2), ...
- java调用c 返回值_推荐--Linux平台下Java调用C函数(补充关于String类型函数返回值)...
平台介绍 系统:ubuntu10.04 jdk:Java(TM) SE Runtime Environment (build 1.6.0_20-b02) gcc:gcc version 4.4.3 ( ...
- c语言函数返回值类型必须,C++中函数类型与定义的函数返回值类型必须相同么?...
C++中函数类型与定义的函数返回值类型必须相同么?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C++中函数类型与定义 ...
- void函数返回值_(*void(*)()0)() 是什么
(*void(*)()0)() 代码分析 这是啥 这行代码,是我今天在看<C陷阱与缺陷>时看到的,一开始很不能理解.慢慢上网摸索一些后,大致理解了,现在来分享一下我所理解的这行代码. 1. ...
- 【C 语言】一级指针 易犯错误 模型 ( 判定指针合法性 | 数组越界 | 不断修改指针变量值 | 函数中将栈内存数组返回 | 函数间接赋值形参操作 | 指针取值与自增操作 )
文章目录 一.判定指针合法性 二.数组越界 三.不断修改指针变量值 四.函数中将栈内存数组返回 五.函数间接赋值形参操作 六.指针取值与自增操作 一.判定指针合法性 判定指针合法性时 , 必须进行如下 ...
- c语言void返回什么意思,C语言程序返回值是void什么意思?
满意答案 ansjc 2014.11.02 采纳率:44% 等级:6 已帮助:206人 void的使用 下面给出void关键字的使用规则: 规则一 如果函数没有返回值,那么应声明为void类型 ...
- C语言基础入门48篇_20_函数入门:为什么使用函数?(函数使得程序模块化 使用函数封装细节,使得程序员只要面向函数的接口编程(参数与返回值),而不用关心函数内部细节)
菜鸟和高手都会基本,那菜鸟为什么是菜鸟,高手为什么是高手呢?很大的区别在于,高手写的程序[结构性]更好,更容易维护.而函数就是C语言结构化的一种手段. 函数可以将大的计算任务划分为多个较小的任务(解耦 ...
最新文章
- AI领域我重点关注的几个今日头条号
- boost::math::daubechies_wavelet用法的测试程序
- linux传统用户界面是,linux用户界面与Shell命令习题.doc
- Controller层使用@value注解获取不到properties属性值
- OMM机房监控系统引领机房监控新趋势
- Redis实战(十二)Redis实现分布式锁
- java小程序(万年历)
- 利用74HC138译码器实现数码管显示
- Httpclient4 简介
- 77.(leaflet之家)leaflet图层显示与隐藏
- HAOI2017 简要题解
- 重庆2021年高考二诊成绩查询,2021年重庆二诊,2021年4月重庆二诊考试,重庆二诊康德卷...
- C#操作.exe文件
- 我的第一个安卓应用程序_我如何设计我的第一个应用程序
- android 屏幕的放大缩小实现
- Java学习-ATM系统
- Scikit-Learn 中文文档】数据集加载工具 - 用户指南 | ApacheCN
- C语言初阶-C语言中static的用法
- Lmbench测试集 --- 延迟测试工具lat_mem_rd
- java 日期处理_java日期处理总结