扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
在C语言中主函数调用子函数,子函数被主函数调用,这就是它们之间的联系。编写函数主要有以下步骤,首先对函数进行定义,语法格式为:
创新互联是一家专业提供南岗企业网站建设,专注与网站制作、网站建设、H5网站设计、小程序制作等业务。10年已为南岗众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
类型说明符 函数名 (含类型说明的形式参数表)
{
语句序列
}
形式参数的作用是实现主函数和被调函数之间的联系。通常将函数所处理的数据、影响函数功能的因素或函数处理的结果作为形参。
然后还要确定函数的返回值及类型,格式为:
return 表达式;
这个语句的另一个作用是结束当前函数的执行。一个函数可以不将任何值返回主函数,此时它的类型标识符为void,可以不写return语句,也可以写一个不带表达式的return;语句。
扩展资料
C语言编程书写规则:
1、一个说明或一个语句占一行。
2、用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。
3、低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。
参考资料来源:《C++语言程序设计(第4版)》郑莉 董源 何江舟 编著 清华大学出版社
第三章 函数 3.1 函数的定义与使用
参考资料来源:百度百科--c语言
先回答下第一个问题,子函数的实现方法可以放在使用它的主函数或者其它子函数后面,但是你的定义一定要在使用它之前;不然编译器怎么知道你用的函数square是什么,这就是我们经常包含头文件的一个目的,头文件是一些函数定义或者预编译命令。
修改是在#includestdio.h后面加
int square(int num);
第二个问题:num是在main定义是可以在main作用域内直接使用,或者当做参数传递给子函数,你的问题num为什么可以在子函数中用,首先你子函数的num并非main里的num只是你把他们名字写成一样了;main里num是通过值传递给子函数的num,实际他们两个num的内存地址是不一样的,你子函数换个名字去理解一下。
C语言中想要使用一个自定义函数一般有以下三个步骤:
一、函数声明:
在开发大型软件都是采用多人合作开发,一般一个人负责实现几个功能,这些功能都是通过函数来实现。这总情况下我们一般采用函数声明和定义分开模式。即函数声明放在头文件里。需要用到时包含相应的头文件及方法库即可,库函数就是这种模式。函数的声明主要是说明函数的名称以及其所需要的参数类型,参数可以只写类型不写变量名,函数定义是需要变量名。
二、函数定义
这一步主要是写函数功能的实现方法,代码块,核心部分。比步可以在函数声明时进行,即声明同时定义方法。不过这种方式不适合分享,因为你不一定想分享你的代码,也许只想分享这个功能。不管哪种方法,在调用函数之前必须进行函数声明。
三、函数调用
经过以上两步,我们的函数已经完成。接下来就是使用函数,使用前先搞清楚函数需要有哪些参数,参数一定要传入合适的类型。第二函数有没有返回值,返回值的含义。我们可以通过返回值判断函数的执行情况,一般函数最好有返回值。想清楚后直接调用函数即可。
要知道 C语言是由MAIN函数开始也由它结束。
每调用一次分函数,只要运行完毕后就会回到调用分函数的地方继续往后执行。
C语言主要靠函数调用和return在函数之间切换,很难做到在多层调用中直接返回主函数。虽然goto语句可以无条件跳转,但是必须在同一个函数中使用。
因此解决的方法也是用一个特殊的值作为需要返回的标志,然后在两层调用函数中都遇到该值就返回,但是这个方法也有两个前提:
1)你的两个子函数都是由返回值的函数
2)你选择的特殊值和函数正常的返回的取值不会冲突,不会引起二义性。
同样的操作,C++可以通过异常处理的throw和catch来实现从子函数的子函数直接返回主函数,汇编语言可以用jmp指令跳转实现这个需求。因此建议你的这个问题还是用C++ 的异常去解决比较好。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流