具体的函数声明和定义请参考上一篇文章
如果我们成为了库的开发者,要卖给别人C语言库,该怎么办呢?
A不会写减法,想找你买一个函数
但是,他给的太少了,你不想把源码卖给他
那怎么办呢?
首先,肯定不能卖.c文件和.h文件呀
我们先新建一个工程
这里用VS2022演示
首先肯定得创建一个头文件和源文件
然后简单写一下我们最贵的客户要求的实现代码以及头文件(声明函数)
//test.c
#define _CRT_SECURE_NO_WARNINGS 1
int Sub(int x, int y)
{
return x - y;
}
#pragma once
int Sub(int x, int y);
那我们接下来该怎么做呢?
我们需要修改属性中的配置类型
选择静态库点击应用,点击确定
点击重新生成解决方案
可以看到已经生成了lib文件
这个文件就是vs把.c文件和.h文件编译产生的一个静态库
我们打开看一下能不能看懂
全是乱码
我们现在把这个project1.lib卖给刚刚的A程序员,他看不懂,怎么办
很简单,我们把.h文件一起卖,我们只要注释的详细一点,A就能看懂
现在我是A程序员
首先把文件粘贴到项目里(最下面两个文件)
先把头文件导入(选择.h)文件即可
#include"test.h"
int main()
{
int a = 10;
int b = 20;
int c = Sub(a, b);
printf("%d\n", c);
return 0;
}
还是会报错
解决办法很简单,我们只需要导入刚刚买来的静态库就行
#pragma comment(lib,"Project1.lib")
可以成功运行
但是过程之中还是遇到一些小插曲
在函数编译的过程中,main函数出现重定义,解决方法就是防止源文件中出现多个主程序,这在C语言和C++中都是不可取的