linux库引入之分文件编程

分模块编程的思想

优点:
功能划分明确
便于调试
主函数整洁明了

Linux分库调用示例

原函数代码 caculment.c

#include <stdio.h>

int add(int data1,int data2)
{
   return data1+data2;
}

int min(int data1,int data2)
{
   return data1-data2;
}

int mul(int data1,int data2)
{
   return data1*data2;
}

int div(int data1,int data2)
{
   return data1/data2;
}


int main()
{
  int data1;
  int data2;
  char c;
  int data;
  printf("请输入所要选择的运算:+、-、*、/  \n");
  scanf("%c",&c);
  printf("请输入数值1\n");
  scanf("%d",&data1);
  printf("请输入数值2\n");
  scanf("%d",&data2);
  switch(c){
    case '+':
            data =  add(data1,data2);
            printf("%d %c %d = %d\n",data1,c,data2,data);
            break;
    case '-':
            data = min(data1,data2);
            printf("%d %c %d = %d\n",data1,c,data2,data);
            break;
    case '*':
            data =  mul(data1,data2);
            printf("%d %c %d = %d\n",data1,c,data2,data);
            break;
    case '/':
            data = div(data1,data2);
            printf("%d %c %d = %d\n",data1,c,data2,data);
            break;
   default :
            printf("运算选择错误\n");
            break;


  }
	
	system("pause");
	return 0;
}

引入库函数后的代码

主函数 calcumentMain.c

#include <stdio.h>
#include "calcumentDemo.h"

int main()
{
  int data1;
  int data2;
  char c;
  int data;
  printf("请输入所要选择的运算:+、-、*、/  \n");
  scanf("%c",&c);
  printf("请输入数值1\n");
  scanf("%d",&data1);
  printf("请输入数值2\n");
  scanf("%d",&data2);
  switch(c){
    case '+':
            data =  add(data1,data2);
            printf("%d %c %d = %d\n",data1,c,data2,data);
            break;
    case '-':
            data = min(data1,data2);
            printf("%d %c %d = %d\n",data1,c,data2,data);
            break;
    case '*':
            data =  mul(data1,data2);
            printf("%d %c %d = %d\n",data1,c,data2,data);
            break;
    case '/':
            data = div(data1,data2);
            printf("%d %c %d = %d\n",data1,c,data2,data);
            break;
   default :
            printf("运算选择错误\n");
            break;


  }
	
	system("pause");
	return 0;
}

分装函数代码 calcumentDemo.c

#include <stdio.h>

int add(int data1,int data2)
{
   return data1+data2;
}

int min(int data1,int data2)
{
   return data1-data2;
}

int mul(int data1,int data2)
{
   return data1*data2;
}

int div(int data1,int data2)
{
   return data1/data2;
}

分装库函数 calcumentDemo.h

用于函数声明。

#include <stdio.h>
int add(int data1,int data2);
int min(int data1,int data2);
int mul(int data1,int data2);
int div(int data1,int data2);

编译运行结果

在这里插入图片描述

为什么要include<stdio.h>,include"calcument.h"

因为 函数中printf,scanf是系统里面已经做好的.。在使用时会调用系统中的这些函数。
而在main函数中,add(),min(),等函数也是之前就已经做好的,在使用时会需要调用。

为什么有的调库是用<>,而有的是用""呢?

<>调库

"<>"的意思是在gcc编译的时候,系统会默认的在下面路径下去找所需调用的函数。

/usr/include

在这里插入图片描述

""调库

“xxx”双引号引起的库是指在编译运行的时候,代码调用库函数会优先从当前文件夹下找所需调用的函数。有的话就调用,没有的话就去默认的 /usr/include 下或者 /usr/local/include下去找。
找不到的话就报错。

思考

既然“”双引号调库是优先在当前路径下去寻找,那么能不能把库函数写到 /usr/include 路径下呢?
就像调用printf函数一样,直接gcc就可以编译运行呢?

想要实现这样的执行程序,就需要用到静态库与动态库了,在下一篇文章中博主将会详细介绍。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值