Introduksjon til kapsling i C

Det har vært tilfeller når vi på grunn av forretningskrav må skrive kompleks kode. Denne koden vil ikke være brukervennlig og ser vanskelig ut å forstå. For å gjøre programmet enklere å lese kan vi pakke det komplekse kodestykket i en kapsel og skjule det. Dette vil også tjene som et ekstra lag med beskyttelse mot skadelige injeksjoner i koden. Vi kan da bruke dette koden ved å kalle forekomsten i hovedprogrammet i stedet for å skrive en hel masse komplekse linjer. Denne funksjonen kalles innkapsling. Det er en av kjernefunksjonene i Objektorienterte språk. Det er imidlertid ikke bare begrenset til bare OOP-språk. I C har innkapsling vært til tross for fravær av private og offentlige nøkkelord. Innkapsling brukes av forskjellige andre programmeringsspråk som C #, C ++, PHP, JAVA også.

Working of Encapsulation in C

For å forstå hvordan innkapsling fungerer, la oss ta en titt på det virkelige eksemplet. Tenk på et stort selskap som har sin egen interne produksjonsenhet med bøker og leverer dem til kunder ved å knytte seg til tredjepartsleverandører. For å få denne forretningsmodellen til å fungere vil det være forskjellige avdelinger involvert som anskaffelsesavdeling, produksjonsavdeling, salgsavdeling, finansavdeling. Innkjøpsavdelingen vil ta seg av alle anskaffelsesrelaterte aktiviteter som anskaffelse av blekk, papir, papiromslag, skrivere, etc. Salgsavdelingen vil jobbe med markedsføring, platesalg. Finansavdelingens ansvar for å gjennomføre den økonomiske revisjonen, beregne fortjeneste / tap og publisere rapporter på bakgrunn av hvilke sentrale strategiske beslutninger som skal tas. I tilfelle salget gikk ned og dette påvirket økonomien i virksomheten. Da vil ikke finansavdelingen ha direkte tilgang til salgsdata. Finansavdelingen må be et medlem av salgsteamet om å få relevant data. Dette er innkapsling. Alle finansieringsaktiviteter er pakket inn under en enhet som kalles ”finansavdelingen”.

Dette konseptet med innkapsling brukes på C-språk for skjul og beskyttelse av data. Det kan implementeres når det viktigste anropsprogrammet har et objekt, objektet skal kunne finne funksjonene som er aktuelle, og på samme måte finner de dataene.

Fordeler med innkapsling i C

  1. Innkapsling skjuler implementeringen av et program og dermed lett å lese og endre i fremtiden i henhold til forretningskrav.
  2. Det lar oss distribuere den oppdaterte kodeversjonen der det er nødvendig, uten å kreve at hele programmet er omstrukturert.
  3. Det sikrer programmet ved å tilby data skjuler funksjonalitet.
  4. Innkapsling fremmer en modulær måte å programmere på å gjøre koden spenstig.

Hvorfor trenger vi innkapsling i C?

Vi trenger innkapsling i C for å manipulere tilgangsmodifiserere i C. Tilgangsmodifisererne er eksplisitt til stede i C ++ for f.eks Offentlige, private, men de er ikke eksplisitt til stede i C. Selv om vi kan gjøre bruk av denne egenskapen i C ved å implementere innkapsling. Innkapsling gir også sikker kode som kan forstås bedre ved et eksempel gitt i avsnittet nedenfor. Dette fremmer tilpasningsevne med endrede krav, ettersom koden krever endring kan endres i en egen fil uten å endre noe i hovedprogrammet. Dette vil gi enkel og feilfri kode opp til en viss grad.

Eksempel på innkapsling i C

Data på C-språk er som standard offentlig. Selv om “Struktur” -variabler kan erklæres private ved å definere dem separat fra hovedklassen. Dette kan oppnås ved å ha en egen header- og kilde C-filer. En overskriftsfil blir fulgt av ".h" -utvidelsen mens C-filer følges av ".C" -utvidelsen. I eksemplet nedenfor: Det er tre filer

  1. p_variable.h
  2. main_prog.c
  3. Access_pfile.c

p_variable.h: Det er en overskriftsfil som skal inkluderes i andre “.c” -filer. Denne filen fungerer som en kobling mellom dataene spredt over flere filer.

main_prog.c: Det er den viktigste implementeringsfilen. Når dette utføres, blir funksjonskall til funksjoner som er definert i andre C-filer sammen med strukturer.

Access_pfile.c: Det er en fil som inneholder struktur. Fordi “struct” krever tildeling og av-allokering av minne, brukes noen funksjoner fra standard C-bibliotek som “malloc ()” og “alloc ()”.

Fil: p_variable.h

#ifndef PRIVATE_VARIABLE
#define PRIVATE_VARIABLE
struct Con; // It is a variable to store contact
struct Con * create_contact(); // functional call to create function
void delete_contact( struct Con * some_contact ); // functional call to delete function
#endif //PRIVATE_VAR

Fil: Access_pfile.c

#include "p_variable.h" //we hav included header file in this file so as to access the structure members. This is //an indirect way of accessing structures and thus implementing encapsulation.
#include
#include
struct Con //structure definition containing two members. Both the members are integer type
(
int mob_number;
int flat_number;
);
struct Con * create_contact() // structure declaration. In this code section we allocate memory for the data we //need to input in the above defined members. Malloc function allocates the memory.
(
struct Con * some_contact;
some_contact = malloc(sizeof(struct Con));
some_contact->mob_number = 1234567891;
some_contact->flat_number = 541;
return( some_contact );
)
void delete_contact( struct Con * some_contact )
(
free(some_contact); // this is tandard C function to de- allocate the memory. It frees up the memory so that //the same can be used by other programs.
)

Fil: main_prog.c

#include "p_variable.h"
#include
int main()
(
struct Con * Meghna;
Meghna = create_contact();
printf( "Mobile number: %d\n", Meghna->mob_number); // This should cause compile time error as we are //trying to access the private struct member
delete_contact( Meghna );
return 0;
)

Produksjon:

Konklusjon

Innkapsling er det ledende trinnet mot objektorientert programmering. Denne artikkelen gir informasjon om Innkapsling i C. Ved hjelp av accessor- og mutatormetoder, tilgangsmodifiserere kan vi også bruke kapsling i C #, C ++, PHP også. Fordelen med egenskaper er at brukerne kan manipulere objektet fra et internt datasynspunkt ved å bruke et enkelt navngitt element med data og funksjonalitet definert i det.

Anbefalte artikler

Dette er en guide til Innkapslingen i C. Her diskuterer vi introduksjon og behov for innkapsling i C sammen med Fordel og eksempler. Du kan også gå gjennom andre foreslåtte artikler for å lære mer -

  1. Abstraksjon vs innkapsling
  2. Innkapsling i Python
  3. Innkapsling i Java
  4. Innkapsling i PHP
  5. Working of Encapsulation in JavaScript
  6. Innkapsling i JavaScript