- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
沈阳工业大学网络管理中心C语言入门冬令营
第六节 用函数实现模块化程序设计
核心内容
①函数的定义
②参数的传递
③函数的值
④函数的调用
WHY
之前所学的C程序属于简单的C程序,几乎把所有代码全部放到了main主函数中,但在工程上,这是绝对不允许的.工厂负责装配的员工把已经做好的部件组装起来就可以了,而不是自己现做零部件.
简单来说,如果一个功能被多次使用,那就有函数化的价值.
例如一直在使用的printf函数,他在stdio.h头文件中是这样声明和定义的[不要求掌握]以下是printf的代码
extern int printf(const char *fmt, ...) __attribute__((format(printf, 1, 2)));
int printf(const char *fmt, ...)
{
char printf_buf[1024];
va_list args;
int printed;
va_start(args, fmt);
printed = vsprintf(printf_buf, fmt, args);
va_end(args);
puts(printf_buf);
return printed;
}
如果我们抛弃函数的概念的话,那程序员就必须从0开始写printf函数,然后在多次输出的地方重复写上述内容无数次,而不是简简单单一句printf(“HELLO WORLD”);就完活.
二.HOW
例一.输出
********************
Hello World!
********************
输出了4句话
#include stdio.h
void print_star(); //声明print_star函数【声明方法二】
void num(){ //定义num函数【定义方法二】
printf (输出了4句话\n);
}
int main()
{
int a;
void print_star(); //声明print_star函数【声明方法一】
void print_message(); //声明print_message函数
print_star(); //调用print_star函数
print_message(); //调用print_message函数
print_star(); //调用print_star函数scanf(%d, a););
num();
return 0;
}
void print_star(){ //定义print_star函数【定义方法一】
printf (********************\n); //输出一行*号
}
void print_message(){ //定义print_message函数
printf ( Hello World!\n); //输出一行文字
}
程序分析:
print_star和print_message都是用户定义的函数名,在定义这两个函数时只递归函数的类型为void,意为函数无类型,即无函数值,即执行这两个函数后不会把任何值带回main函数.
注意函数声明和函数定义的样式务必要相同。
如果定义函数的地方实在main函数之后,那就需要在main函数内或上方提前声明函数,来让main函数知道有这个函数存在(C程序是从上到下进行的).如果定义的函数在main函数上方,则main函数就已经知道该函数存在,那就无需声明[我比较喜欢这么做].
※重点:
C程序的执行是从main函数开始,如果在main函数中调用其他函数,在调用后流程返回到mian函数,在main函数中结束整个程序的运行【main函数是整个程序的入口和出口】
所有函数都是平行的,即在定义函数时是分别进行的,是相互独立的.函数间可以互相调用,但绝对不可以调用main函数
如何定义函数
定义函数需要包括以下内容
①函数的名字,以便以后按名调用
②函数的类型,函数返回值的类型
③参数的名字和类型,以便在调用函数时向它们传递数据.但对无参函数不需要这项【见例一】
④函数的功能
定义函数的方法
①无参函数
类型名 函数名(){
函数体
}
见例一
括号里面也可以写上void,表示空,没有参数,省略也可
一般无参函数没有返回值,在程序里面担任输入输出工作,就像printf函数和例一
2.定义有参函数
类型名 函数名(形参){
函数体
return 形参/如果类型名是void则省略retur
文档评论(0)