linux库引入之分文件编程

    科技2023-10-30  94

    分文件编程好处 将main函数和其他功能性函数放在不同的文件中,分模块的编程思想,分工明确,查找错误比较容易,责任可以划分清楚,程序也方便调试,并且主函数比较简洁。 将文件从同一目录下的另一个文件夹拷贝到当前文件夹

    cp ../together.c(文件名称) .

    这个代码是没有分文件编程的

    #include <stdio.h> #include <stdlib.h> #include <unistd.h> void initscores(int datas[],int size) { int i; for(i=0;i<size;i++){ printf("qing shu ru di%dge xue sheng de fen shu :\n",i+1); scanf("%d",&datas[i]); if(datas[i]>100||datas[i]<0){ printf("input error\n"); system("pause"); exit(-1); } } } void printscores(int datas[],int size) { int i; for(i=0;i<size;i++){ printf("di %dge xue sheng de cheng ji shi :%d\n",i+1,datas[i]); } } int findmax(int datas[],int size) { int i; int max; max=datas[0]; for(i=0;i<size;i++){ if(datas[i]>max) max=datas[i]; } return max; } int findmin(int datas[],int size) { int i; int min; min=datas[0]; for(i=0;i<size;i++){ if(datas[i]<min) min=datas[i]; } return min; } int findavagerge(int scores[],int size) { int sum=0; int i; float avagerge; for(i=0;i<size;i++){ sum+=scores[i]; } avagerge=(float)sum/10; return avagerge; } int printret(int max,int min,float avagerge) { printf("zui gao fen :%d\n",max); printf("zui di fen ¿%d\n",min); printf("ping jun fen:%f\n",avagerge); } int main() { int scores[10]; int len; int max; int min; float avagerge; len=sizeof(scores)/sizeof(scores[1]); initscores(scores,len); printscores(scores,len); max=findmax(scores,len); min=findmin(scores,len); avagerge=findavagerge(scores,len); printret(max,min,avagerge); system("pause"); return 0; }

    主函数部分代码

    #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include"togetherfunc1.h" int main() { int scores[10]; int len; int max; int min; float avagerge; len=sizeof(scores)/sizeof(scores[1]); initscores(scores,len); printscores(scores,len); max=findmax(scores,len); min=findmin(scores,len); avagerge=findavagerge(scores,len); printret(max,min,avagerge); system("pause"); return 0; }

    // < >这个符号表示gcc在编译的时候默认的在/usr/include 或 /usr/local/include 下找这些头文件 " " 这符号表示优先从当前路径去找(当前的文件夹),然后再从/usr/include 下去找,找不到就报错。

    功能性函数代码

    #include <stdio.h> #include <stdlib.h> #include <unistd.h> void initscores(int datas[],int size) { int i; for(i=0;i<size;i++){ printf("qing shu ru di%dge xue sheng de fen shu :\n",i+1); scanf("%d",&datas[i]); if(datas[i]>100||datas[i]<0){ printf("input error\n"); system("pause"); exit(-1); } } } void printscores(int datas[],int size) { int i; for(i=0;i<size;i++){ printf("di %dge xue sheng de cheng ji shi :%d\n",i+1,datas[i]); } } int findmax(int datas[],int size) { int i; int max; max=datas[0]; for(i=0;i<size;i++){ if(datas[i]>max) max=datas[i]; } return max; } int findmin(int datas[],int size) { int i; int min; min=datas[0]; for(i=0;i<size;i++){ if(datas[i]<min) min=datas[i]; } return min; } int findavagerge(int scores[],int size) { int sum=0; int i; float avagerge; for(i=0;i<size;i++){ sum+=scores[i]; } avagerge=(float)sum/10; return avagerge; } int printret(int max,int min,float avagerge) { printf("zui gao fen :%d\n",max); printf("zui di fen ¿%d\n",min); printf("ping jun fen:%f\n",avagerge); }

    .h 文件代码

    void initscores(int datas[],int size); void printscores(int datas[],int size); int findmax(int datas[],int size); int findmin(int datas[],int size); int findavagerge(int scores[],int size); int printret(int max,int min,float avagerge);

    //.h 是将函数名拿来装在这个文件中的。

    如何编译

    gcc togetherfunc1.c togetherfunc.c //这两个文件顺序可以调换

    在/usr/include下查找文件

    ls /usr/include ls /usr/include |grep stdio(要查找的文件) | 表示管道 过滤查找自己想要的文件
    Processed: 0.035, SQL: 8