C语言多文件编程

Python013

C语言多文件编程,第1张

多个c文件的作用在于将不同功能的代码分开来实现,这样便于代码重用、代码编译和代码管理。

一个程序中,只能有一个main函数,这是整个程序的起点和入口。如果其他人也实现了该函数,则必须要重新命名,然后在唯一的main函数中统一调用。

多个c文件的合并并没有顺序要求,任何一个都可以先编译或者后编译。

extern表示导出,可以用于函数和变量。用于函数的时候,表示这是一个外部函数,用于变量的时候,表示这是一个外部变量。

如果使用一个c文件,多个h文件,则会导致改动代码任何一个地方,都要重新编译所有的文件,效率上非常不划算。而使用多个c文件,当代码发生变更的时候,仅仅相关的c文件代码需要重新编译,其他代码则可以保持不变,不用参与编译。

函数中的局部变量无法在函数外部调用,只能通过参数传递的方式传递给第三方函数。因为局部变量是出于栈上面的,栈会随着函数调用完毕的时候被系统回收。

将一个函数写在一个文件里,然后再在另一个文件里用“include”包含这个文件。举个例子

在文件c1.c里编一个函数:

void

printWord(){

printf("Hello!world!")

}

再建立一个文件c2.c,文件开头写上#include"c1.c",就可以调用c1.c里的函数printword()了

main.c修改后如下:

#include <stdio.h>

#include <memory>

#include <stdlib.h>

#include"student.h"

int main()

{

    printf("Hello world!\n")

    student *head

    head = (student *)malloc(sizeof(student))

    shuru(head)

    shuchu(head)

    return 0

}

student.c修改后如下:

#include <stdio.h>

#include"student.h"

void shuru(student *head)

{

    printf("id:")

    scanf("%d",&head->id)

    printf("mark:")

    scanf("%d",&head->mark)

}

void shuchu(student *head)

{

    printf("id:")

    printf("%d\n",head->id)

    printf("mark:")

    printf("%d",head->mark)

}

student.h不用修改