Π² Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ (Π½Π΅ Π²ΡΠ΅) ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π½Π°ΡΠ΅Π³ΠΎ API ΠΎΠ±ΡΡΠ²Π»ΡΡΡΡΡ Π² ΡΠΏΠΈΡΠΊΠ΅ ΡΠ°ΡΡΡΠ»ΠΊΠΈ, Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ (Π½Π΅ Π²ΡΠ΅) ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡΡ ΠΊ Π²ΡΠΏΡΡΠΊΡ.
ΠΡΡΡ Π»ΠΈ ΡΠΏΠΎΡΠΎΠ± ΡΡΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ?
ΠΠ΄Π΅ΠΈ:
ΠΠ»ΠΈ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠ°ΠΊ Π΅ΡΡΡ - ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΊΠ°ΠΊ-ΡΠΎ ΡΠ°Π·ΡΠΌΠ½ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΠΏΡ?
Π― Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½, ΡΡΠΎ Π½Π°ΠΌ Π½ΡΠΆΠ΅Π½ ΡΡΠΎΡ ΡΠ°ΠΉΠ», Π½ΠΎ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ Π² ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΡΡΡΠ»ΠΊΠΈ, Π±Π΅Π·ΡΡΠ»ΠΎΠ²Π½ΠΎ, Ρ ΠΎΡΠΎΡΠ°Ρ ΠΈΠ΄Π΅Ρ.
(Ρ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Ρ Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΠΊΠΎΡΠΎ ΠΌΡ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅ΠΌ ΠΊ ΡΠΎΠΌΡ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ API - ΡΡΠΎ ΡΠΎ, ΡΡΠΎ ΡΠ»ΡΡΠ°Π΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎ ;-))
ΠΠΏΡΠΈΠΌΠΈΡΡ. ;-)
Π― Π±Ρ ΠΏΠΎΡΠΎΠ²Π΅ΡΠΎΠ²Π°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²Π΅ΡΡΠΈΠΈ API, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ API Π±ΡΠ»ΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΈΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΈΠ·-Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ API.
ΡΠΎ Π΅ΡΡΡ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ (ΡΠ΅ΡΠΏΠΈΡΠ΅ ΠΌΠ΅Π½Ρ - Π½Π΅ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½ΠΎ):
my_api.h
#define MY_API_VERSION 4711
#if MY_API_VERSION_USED != MY_API_VERSION
#error my_api version does not match used version
#endif
...
usercode.c
#define MY_API_VERSION_USED 23
#include "my_api.h"
...
ΠΡΠ° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΠΌΠ΅ΡΠ΅Π½Π° ΠΊΠ°ΠΊ ΡΡΡΠ°ΡΠ΅Π²ΡΠ°Ρ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ Π±ΡΠ»ΠΎ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΠ½ Π±ΡΠ΄Π΅Ρ Π·Π°ΠΊΡΡΡ, Π΅ΡΠ»ΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅, ΡΡΠΎΠ±Ρ Ρ ΠΏΡΠΎΠΈΠ³Π½ΠΎΡΠΈΡΠΎΠ²Π°Π» ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΎΡΠΌΠ΅ΡΡΡΠ΅ Π΅Π΅ ΠΌΠ΅ΡΠΊΠΎΠΉ Β«Π‘ΠΎΡΡΠΎΡΠ½ΠΈΠ΅: Π½Π΅ ΡΡΡΠ°ΡΠ΅Π²Π°ΡΡΒ». Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π°Ρ Π²ΠΊΠ»Π°Π΄.
Π·Π°ΠΊΡΡΡΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ.