Get the App
SLTechnology News&Howtos  ›  Development  › 

What is the design method of API

Shulou Source: shulou.com Published: 2022-06-03 00:50:32 11月09日 Update

This article mainly explains "what is the design method of API". Interested friends may wish to have a look at it. The method introduced in this paper is simple, fast and practical. Next, let the editor take you to learn "what is the design method of API"?

Assuming that TestFun is provided as an external interface, we compile and make it into a static library:

$ar +-c api.cc-I. / $ar-rcs libapi.an api.o

For the production of static libraries, please refer to "how to make static libraries under Linux?"

Another program, main.cc, uses it like this:

/ / Source: official account programming Zhuji / / author: Mr. Shouwang # include "api.h" int main () {Param param; param.num = 10; param.str = "24"; TestFun (param); return 0;}

Compile links use:

$lapi +-o main main.cc-L.L /-lapi-I. / $. / main

There seems to be no problem, there are new parameters, can be directly added to the Param, scalability is also good.

Here comes the problem.

So far, there is no problem, but suppose there is another library to use it, such as:

/ / Source: official account programming Zhuji / / author: Mr. Shouwang / / use_api.h # include "api.h" void UseApi (); / / use_api.cc # include "use_api.h" void UseApi () {Param param; param.num = 10; param.str = "24"; TestFun (param);}

Also use it as a static library:

$ar +-c use_api.cc-I. / $ar-rcs libuse_api.a use_api.o

At this time, the same main program will use our original api, but different versions will be used. For example, a new field, ext, has been added to Param:

/ / Source: official account [programming Zhuji] / / author: Mr. Shouwang / / api.h # include struct Param {int num; std::string str; std::string ext;}; void TestFun (const Param & param); / / api.cc # include "api.h" void TestFun (const Param & param) {std::cout

Tags: Version author sir public source Zhuji programming method field static member interface time link compilation design file problem production main program Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno MariaDB OPPO Reno Docker Xiaomi Shulou Tech Info