文档介绍:第5章函数-2
C语言程序设计
1
内容提要
函数定义、函数调用、函数原型、函数返回值
难点:函数的参数传递与返回值
程序调试
代码风格
变量的作用域与存储类型
模块化程序设计
Skill:
用函数编程求解问题的能力
程序排错与调试的能力
程序版式
缩进(indent)—保证代码整洁、层次清晰的主要手段
良好风格的程序应严格采用梯形层次对应好各层次
int IsPrime(int n)
{
int k, i;
k = sqrt((double)n);
for (i=2; i<=k; i++)
{
if (n % i == 0)
return 0;
}
return 1;
}
#include <>
main()
{
int i;
for (i=2; i<100; i++)
{
if (IsPrime(i))
printf("%d\t",i);
}
}
程序版式
现在的许多开发环境、编辑软件都支持“自动缩进”
根据用户代码的输入,智能判断应该缩进还是反缩进,替用户完成调整缩进的工作
VC中有自动整理格式功能
只要选取需要的代码,按ALT+F8就能自动整理成微软的cpp文件格式
命名规则
在Linux/Unix平台<br****惯用function_name
本书采用Windows风格函数名命名
用大写字母开头、大小写混排的单词组合而成
FunctionName
变量名形式
“名词”或者“形容词+名词”
如oldValue与newValue等
函数名形式
“动词”或者“动词+名词”(动宾词组)
如GetMax()等
对函数接口进行注释说明
/* 函数功能:实现××××功能
函数参数:参数1,表示×××××
参数2,表示×××××
函数返回值: ×××××
*/
返回值类型函数名(参数表)
{ 函数体 return 表达式;
}
变量的作用域( Scope )
指在源程序中定义变量的位置及其能被读写访问的范围
分为
局部变量(Local Variable)
全局变量(Global Variable )
局部变量( Local Variable )
在语句块内定义的变量
形参也是局部变量
特点
定义时不会自动初始化,除非程序员指定初值
生存期是该语句块
并列语句块各自定义的同名变量互不干扰
形参和实参可以同名
全局变量( Global Variable )
在所有函数之外定义的变量
Global variables are defined outside the body of every function in the file (lifetime of the main program):
生存期是整个程序,从程序运行起即占据内存,程序运行过程中可随时访问,程序退出时释放内存
有效范围是:从定义变量的位置开始到本程序结束
#include <>
int global; /*定义全局变量*/
void GlobalPlusPlus(void);
main()
{
global = 1;
printf("Before GlobalPlusPlus(), it is %d\n", global);
GlobalPlusPlus();
printf("After GlobalPlusPlus(), it is %d\n", global);
}
/* 函数功能: 对全局变量global加1,并打印加1之前与之后的值
函数入口参数: 无
函数返回值: 无
*/
void GlobalPlusPlus(void)
{
printf("Before ++, it is %d\n", global);
global++;
printf("After ++, it is %d\n", global);
}
Before GlobalPlusPlus(), it is 1
Before ++, it is 1
After ++, it is 2
After GlobalPlusPlus(), it is 2
全局变量
使函数之间的数据交换更容易,也更高效,但是并不推荐使用,尽量少用,因为谁都可以改写全局变量,所以很难确定是谁改写了它