Introduktion til indkapsling i C

Der har været tilfælde, hvor vi på grund af forretningskrav har brug for at skrive kompleks kode. Denne kode vil ikke være brugervenlig og ser svært ud til at forstå. For at gøre programmet ser lettere at læse kan vi pakke det komplekse kodestykke i en kapsel og skjule det. Dette vil også tjene som et tilføjet beskyttelseslag mod eventuelle ondsindede injektioner i koden. Vi kan derefter bruge dette stykke kode ved at kalde dets eksempel i hovedprogrammet snarere end at skrive hele flok komplekse linjer. Denne funktion kaldes indkapsling. Det er en af ​​kernefunktionerne i Objektorienterede sprog. Det er dog ikke kun begrænset til kun OOP-sprog. I C har indkapsling været til trods for fraværet af private og offentlige nøgleord. Indkapsling bruges også af forskellige andre programmeringssprog som C #, C ++, PHP, JAVA.

Arbejde med indkapsling i C

Lad os overveje det virkelige liv for at forstå indkapslingen. Overvej et stort firma, der har sin egen interne produktionsenhed af bøger og leverer dem til kunder ved at binde sig sammen med tredjepartsleverandører. For at få denne forretningsmodel til at fungere vil der være forskellige afdelinger involveret som indkøbsafdelingen, produktionsafdelingen, salgsafdelingen, økonomiafdelingen. Indkøbsafdelingen tager sig af alle indkøbskoblede aktiviteter såsom indkøb af blæk, papirer, papiromslag, printere osv. Salgsafdelingen arbejder med markedsføring, pladesalg. Finansafdelingsansvar for at gennemføre de økonomiske revisioner, beregne overskud / tab og offentliggøre rapporter på grundlag af hvilke nøgle strategiske beslutninger vil blive truffet. I tilfælde af, at salget faldt, og dette påvirkede virksomhedens økonomi. Derefter får økonomiafdelingen ikke adgang til salgsdata direkte. Finansafdelingen bliver nødt til at anmode et medlem af salgsteamet om at få de relevante data. Dette er indkapsling. Alle finansieringsaktiviteter er indpakket under en enhed kaldet ”finansafdelingen”.

Dette koncept af indkapsling bruges på C-sprog til skjul og beskyttelse af data. Det kan implementeres, når det vigtigste opkaldsprogram har et objekt, objektet skal være i stand til at finde de relevante funktioner, og på samme måde finder de dataene.

Fordele ved indkapsling i C

  1. Indkapsling skjuler implementeringen af ​​et program og dermed let at læse og ændre i fremtiden i henhold til forretningskrav.
  2. Det giver os mulighed for at implementere den opdaterede kodeversion, hvor det er nødvendigt, uden at kræve, at hele programmet er omstruktureret.
  3. Det sikrer programmet ved at give data skjult funktionalitet.
  4. Indkapsling fremmer en modulær måde at programmere på, hvilket gør kode modstandsdygtig.

Hvorfor har vi brug for indkapsling i C?

Vi har brug for indkapsling i C for at manipulere adgangsmodifikatorerne i C. Adgangsmodifikatorerne er eksplicit til stede i C ++ for f.eks. Offentlige, private, men de er ikke eksplicit i C. Selvom vi kan gøre brug af denne egenskab i C ved at implementere indkapsling. Indkapsling tilvejebringer også sikker kode, som bedre kan forstås ved et eksempel tilvejebragt i nedenstående afsnit. Dette fremmer tilpasningsevne med ændrede krav, da den kode, der kræver en ændring, kan ændres i en separat fil uden at ændre noget i hovedprogrammet. Dette giver op til en vis grad enkel og fejlfri kode.

Eksempel på indkapsling i C.

Data på C-sprog er som standard offentlige. Selvom “Struktur” -variabler kan erklæres private ved at definere dem separat fra hovedklassen. Dette kan opnås ved at have en separat header- og kilde C-filer. En headerfil følges af ".h" -udvidelsen, mens C-filer følges af ".C" -udvidelsen. I nedenstående eksempel: Der er tre filer

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

p_variable.h: Det er en headerfil, der skal inkluderes i andre “.c” -filer. Denne fil fungerer som et link mellem dataene spredt over flere filer.

main_prog.c: Det er den vigtigste implementeringsfil. Når dette udføres, foretages funktionsopkald til funktioner, som er defineret i andre C-filer sammen med strukturer.

Access_pfile.c: Det er en fil, der indeholder struktur. Da “struct” kræver allokering og af-allokering af hukommelse, bruges nogle funktioner 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;
)

Produktion:

Konklusion

Indkapsling er det førende trin mod objektorienteret programmering. Denne artikel giver information om Indkapsling i C. Ved hjælp af accessor- og mutatormetoder, adgangsmodifikatorer, kan vi også bruge indkapsling i C #, C ++, PHP. Fordelen ved egenskaber er, at brugerne kan manipulere objektet fra et internt datasynspunkt ved hjælp af et enkelt navngivet element med data og funktionalitet defineret i det.

Anbefalede artikler

Dette er en vejledning til Indkapsling i C. Her diskuterer vi introduktion og behov for indkapsling i C sammen med Fordel og eksempler. Du kan også gennemgå vores andre foreslåede artikler for at lære mere -

  1. Abstraktion vs indkapsling
  2. Indkapsling i Python
  3. Indkapsling i Java
  4. Indkapsling i PHP
  5. Arbejde med indkapsling i JavaScript
  6. Indkapsling i JavaScript

Kategori: