多个.c和.h(方法、变量)相互调用,gcc编译运行

头文件arithmetic.h源文件arithmetic..c

头文件main.h源文件main.c

arithmetic.h中声明

int Add(int arg0, int arg1);
int Sub(int arg0, int arg1);

arithmetic.c实现 

#include "arithmetic.h"
float PI = 3.14;
int Add(int arg0, int arg1)
{
    return arg0+arg1;
}
int Sub(int arg0, int arg1)
{
    return arg0-arg1;
}

main.h声明

void myprint1(void);
void myprint2(int arg0);

main.c实现且调用arithmetic.c的方法

#include <stdio.h>
#include "main.h"
#include "arithmetic.h"
int main(void) {
    int sum = 0;
    int diff = 0;
    sum = Add(1, 2);
    diff = Sub(2, 1);
    myprint1();
    myprint2(sum);
    myprint2(diff);
    getchar();
    return 0;
}

void myprint1(void)
{
    printf("调用打印方法成功\n");
}
void myprint2(int arg0)
{
    printf("arg0=%d\n",arg0);
}

 运行cmd,gcc编译运行。gcc main.c arithmetic.c -o main

 

变量调用。全局变量分别申明于main.c和arithmetic.c。用extern 表示使用外部变量。

arithmetic.h中声明增加Circle(),initValue(),即

int Add(int arg0, int arg1);
int Sub(int arg0, int arg1);
float Circle(int arg0);
void initValue();

arithmetic.c中

#include "arithmetic.h"
float PI = 3.14;
int Add(int arg0, int arg1)
{
    return arg0+arg1;
}
int Sub(int arg0, int arg1)
{
    return arg0-arg1;
}
float Circle(int arg0)
{
    return arg0*PI;
}
void initValue()
{
	extern int global_variate;
	global_variate = 100;
}

main.h

void myprint1(void);
void myprint2(int arg0);
void myprint3(float arg0);

 main.c

#include <stdio.h>
#include "main.h"
#include "arithmetic.h"
extern float PI;
int global_variate = 0;

int main(void) {
    int sum = 0;
    int diff = 0;
    sum = Add(1, 2);
    diff = Sub(2, 1);
    myprint1();
    myprint2(sum);
    myprint2(diff);
    myprint3(PI);
    float c = Circle(2);
    myprint3(c);
    PI = 3;
    myprint3(PI);
    c = Circle(2);
    myprint3(c);
    myprint2(global_variate);
    initValue();
    myprint2(global_variate);
    getchar();
    return 0;
}

void myprint1(void)
{
    printf("调用打印方法成功\n");
}
void myprint2(int arg0)
{
    printf("arg0=%d\n",arg0);
}
void myprint3(float arg0)
{
    printf("arg0=%.2f\n",arg0);
}

 不在源文件路径执行cmd则用绝对路径

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C语言的多文件编程是指将一个大型的程序拆分为多个文件(.c或者.h文件),然后利用main文件调用其他文件中的函数和变量,以实现模块化的程序设计。 首先,我们需要在main文件中包含其他文件的头文件(.h文件),可以使用#include指令来实现,例如#include "otherfile.h"。这样main文件就可以知道其他文件中的函数和变量的声明。 然后,我们需要编写其他文件的定义部分(.c文件),定义具体的函数和变量实现。这些定义可以包含在.h文件中,或者单独放在.c文件中,根据需要进行组织。确保其他文件中的函数和变量都是静态(static)的,以避免与其他文件冲突。 接下来,在main文件中,我们可以直接调用其他文件中的函数和变量。例如,假设在otherfile.c中有一个名为otherFunc的函数,我们可以在main文件中通过调用otherFunc()来执行该函数。 在编译时,需要将所有相关的.c文件一起编译链接成一个可执行文件。可以使用编译器命令(如gcc)来完成这一过程。例如,使用以下命令编译包含main.c和otherfile.c的程序: gcc main.c otherfile.c -o program 最后,通过执行生成的可执行文件program,可以运行整个程序,其中包括调用了其他文件中的函数和变量的部分。 通过使用C语言的多文件编程,我们可以将一个大型的程序分解为多个小模块,使得程序的设计更加清晰和易于维护。这种模块化的方式也有助于多人协同开发,提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值