楼主你好。
成都创新互联是一家专业提供鱼台企业网站建设,专注与成都做网站、成都网站制作、H5场景定制、小程序制作等业务。10年已为鱼台众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。
.h文件作为接口存在的。所谓接口就是指类型定义、变量声明、函数声明等等,基本上不会在.h里面放置函数实现。
.c里面才真正实现函数。
比方说,我写一个work的实现:
//work.h
#ifndef work_h
#define work_h
//你也可以在这里声明变量,或者定义类型、结构体
void work();//注意这只是一个函数声明
#endif
//work.c
//work函数的定义,或者说实现
void work(){
//这里才真正实现work中的代码
}
这样一来,如果你想用work.c中的work函数,只要#include "work.h"就可以了。
小技巧:
#ifndef work_h
#define work_h
#endif
这三行代码是为了保证在编译某一个.c或.cpp文件时,work.h头文件只编译一次。
比方你在main.c里面打了10次#include "work.h",这样预处理的时候会向main.c中拷贝10次work.h的代码(预处理时实际上会用work.h中的代码替代#include "work.h"这行代码),有了那三行就可以保证只有第一个拷贝的work.h参与编译,剩下的九个都跳过。(因为work_h在第一次#include的时候被定义了,往后就不会编译#ifndef .. #endif 中间的代码了)
首先你要明白if(a%b)是什么意思,在if中,只要括号中的值不为0,如1、3、4甚至是一百万,都被认为是true,只有0才是false。
好了,回到问题中,你输入123、321后,两个参数传入work中,得a%b=123//此时为什么?对了,为真。那就将321、123传入递归中,一步步来你就明白了,呵呵,怎么样,不懂继续问我
是“word”还是“work”
前者是一种常见变量类型描述:8个位(bit)称为一个字节(byte),两个字节称为一个字(word),两个字称为一个双字(dword),两个双字称为一个四字(qword)。
后者字面含义是“工作”,一般在C编程时用来描述功能函数或变量类型或实体用,也有用在宏定义中,汇编中的标号命名也会用到这个词。
实际上你的work就相当于一个小模块,打个比方,你要写个计算器程序,实现两个数之间的加减乘除,这时候你的work就相当于实现加或减或乘或除的一个功能,在handle中调用这样一个函数会让整体代码看起来比较清晰,我们不是都讲究高内聚低耦合嘛;返回值的作用是判断你的函数有没有执行成功,比如说你在写除法这个功能时需要判断一个被除数不能为0否则要出错,假如没有一个返回值判断的话很可能整个代码执行下来,因为某个功能模块没有执行成功得不到你想要的结果,却没法从打印信息里判断出来,其实这是错误处理的一种手段。希望对你有帮助^^
就是函数参数的不同,让你用不同的方式去用,理解两个参数的性质,数组名做为参数,其实也是一个类似指针的地址引用,在函数里操作的是实际的数组元素,只不过换了个名字,,,指针也是同样的道理,不用传递数值,是传递的地址。。如:你定义一个保存一个班学生成绩的数组,按学号把成绩存入数组,但你要比较数组所有元素的大小,如果按值传递,就得先用一个循环来读取各个元素再比较,如果按照传递地址的话,就直接读取数组中的值,,,,,函数应用的方式就简单一些。。。应用也广一些。。。。因为所有这样的比较都可以用这个函数。。。不管数组有多大,有多少元素。。我说起来也有点乱了。。。。呵呵,,,,