返回第四十二章 隐身和显形(2 / 2)程序媛养成计划首页
最新网址:m.paowxw.com

double circleZhouChang(double r)

{

return 2 * PI * r;

}

现在如果我们需要在其他.c文件中调用circleMianJi和circleZhouChang这两个方法的话,就只需要包含circle.h即可,现在我们要在包含main函数的main.c文件中调用:

#include

#include “circle.h“

int main(int argc, char const *argv[])

{

double r = 5;

double mianJi = circleMianJi(r);

double zhouChang = circleZhouChang(r);

print(“半径为%.2 的圆面积为%.2

“, r, mianJi);

print(“半径为%.2 的圆周长为%.2

“, r, zhouChang);

getchar();

return 0;

}

如果我们想要在main.c中读写circle.c的PI变量,则只需要在声明全局变量的地方写一句:

external double PI;

就可以了,记住,使用external的时候不能对变量进行初始化!

同样的,如果circle不想PI被其他.c文件读写,只需要加上static就好了。

同理,如果不想circleMianJi和circleZhouChang这两个方法被其他.c文件调用,只需要在circle.h中声明它们时加static即可。当然了,函数实现和声明必须保持一致,既然声明那儿加了static,实现的地方也必须加上!

circle.h文件:

#include

static double circleMianJi(double r);

static double circleZhouChang(double r);

circle.c文件:

#include “circle.h“

static double PI = 3.1415926;

static double circleMianJi(double r)

{

return PI * r * r;

}

static double circleZhouChang(double r)

{

return 2 * PI * r;

}」

老爹通过投影仪给我们演示了一遍,基本上没有什么难度。

「原来咱们编译的时候针对的是单个.c文件,现在文件变多了,编译命令也会有所改变。

gcc *.c o xxxx

*.c的意思是编译当前文件加下所有的.c文件,最后生成一个名为xxxx的可执行文件。当然了,你们有兴趣的话也可以这样:

gcc circle.c main.c o mian

把所有的.c文件都一一罗列出来。

不过当.c文件比较多的时候就比较好玩儿了。

至此,和函数相关的知识我们就差不多讲完了。这部分理论知识比较多,也比较抽象,需要你们结合实际代码多理解。

同时,也恭喜你们升级了,从小菜鸟升级到了菜鸟。

相信有了这么多的知识积累,你们已经能够写出很多有用的程序来了。同时你们对C语言的世界应该也有了一个大概的轮廓了,但是想要在这个世界中飞翔还差一段距离。

明天,我会和你们一起学习C语言最为中的精髓部分——指针。当学完这一部分,你们就成长为了真正的鸟,基本上能够在C语言世界中自由飞翔了。」