MACROS u C Pitanja i odgovori
29. listopada • Resursi • 5746 pregleda • 4 komentara o MACROSIMA u C pitanjima i odgovorimaMAKROSIMA u C pitanjima i odgovorima je nešto što su učenici postavljali. Danas smo detaljno govorili o MACROS-ima. Pitanje-1 Što je makronaredba u C-u? Odgovor- Makronaredbe su u biti skraćeni prikazi proizvoljnih dijelova izvornog koda, što izvorni kod čini sažetim, dok njegovo proširenje (predloška makronaredbe) zamjenjuje svaka njegova prisutnost prije kompilacije. Što god da se radi s makronaredbama, to radi predprocesor, tako da je izvorni kod spreman za kompilaciju. Pitanje-2 Kako biste pozvali makronaredbu? Odgovor- Nakon definiranja makronaredbe, možemo je pozvati dodavanjem postotka znak prefiks uz njegovo ime ovako: % ime makronaredbe točka i zarez nije potrebna pri pozivanju makronaredbe, iako njegovo dodavanje općenito ne šteti. Pitanje-3 Koja je razlika između %LOCAL & %GLOBALNO? Odgovor- %LOCAL je makro varijabla definirana unutar makronaredbe. %GLOBAL je makro varijabla definirana u otvorenom kodu (izvan makronaredbe ili se može koristiti bilo gdje) Pitanje-4 Možete li izvršiti makronaredbu unutar druge makronaredbe? Odgovor- Da, mogu izvršiti makronaredbu unutar makronaredbe, mi to nazivamo gniježđenjem makronaredbi , što je dopušteno. Početak svake makronaredbe označen je ključnom riječi %macro, a završetak s %mend. Pitanje-5 Koja je razlika između makronaredbi i prompt-a? Odgovor- Makronaredbe su objekt za vrijeme izvođenja, koji se koristi s mapom parametara i parametrima sesije za stvaranje uvjetnih subjekata upita. Prompt nije ništa drugo nego dinamički filtar, koji će ograničiti podatke prikazane u izvješću. Pitanje-6 Što su sintaktičke makronaredbe? Odgovor- Makrosustavi koji rade na razini apstraktnih sintaktičkih stabala nazivaju se sintaktičkim makronaredbama i čuvaju leksičku strukturu izvornog programa . U međuvremenu, makro sustavi, kao što je ranije opisan C predprocesor, koji rade na razini leksičkih tokena ne mogu pouzdano sačuvati leksičku strukturu. Najčešće korištene implementacije sintaktičkih makro sustava nalaze se u jezicima sličnim Lispu kao što su Common Lisp, Scheme, ISLISP i Racket. Ovi su jezici posebno prikladni za ovaj stil makronaredbi zbog svoje jedinstvene sintakse u zagradama (poznate kao S-izrazi). Konkretno, jedinstvena sintaksa olakšava određivanje pozivanja makronaredbi. Lisp makronaredbe transformiraju samu strukturu programa, s punim jezikom koji je dostupan za izražavanje takvih transformacija. Dok se sintaktičke makronaredbe najčešće nalaze u jezicima sličnim Lisp-u, one su implementirane za druge Pitanje-7 Što je NULL makronaredba? Odgovor- NULL makronaredba je definirana u stdio.h i stddef.h. Koristi se za predstavljanje nultog pokazivača u vašem kodu. Njegova vrijednost je nula.Pitanje-8 Koje su razlike između makronaredbi i funkcija u jeziku C?Odgovor-1. Makronaredbe u C-u troše manje vremena. Kada se funkcija pozove, argumenti joj se moraju proslijediti, te argumente prihvaćaju odgovarajuće lažne varijable u funkciji, obrađuju se i na kraju funkcija vraća vrijednost koja je dodijeljena varijabli (osim za void funkciju) . Ako se funkcija pozove nekoliko puta, vremena se zbrajaju i kompilacija kasni. S druge strane, proširenje makronaredbe već se dogodilo i zamijenilo je svako pojavljivanje makronaredbe u izvornom kodu prije nego što se izvorni kod počne kompajlirati, tako da ne zahtijeva dodatno vrijeme za izvršenje.2. Funkcija u C-u troši manje memorije. Dok funkcija prepuna makronaredbi može izgledati sažeto na površini, prije kompilacije, sve makro-prisutnosti zamjenjuju se njihovim odgovarajućim makro proširenjima, što troši znatnu količinu memorije. S druge strane, čak i ako se neka funkcija pozove 100 puta, i dalje zauzima isti prostor. Stoga je funkcija podložnija manjim zahtjevima za memoriju. Pitanje-9 Koja je razlika između null pokazivača i null makronaredbe? Odgovor- Null makronaredba je #define NULL 0. To znači da će makronaredba null biti zamijenjena s 0 tijekom pretprocesiranja, ali NULL pokazivač znači da ne pokazuje nigdje, tj. sadrži 0 znači da može biti opasno koristiti takav pokazivač bez dodjele odgovarajuće adrese. U suprotnom nulti pokazivač može pokušati pristupiti adresi za ponovno postavljanje može uzrokovati pad programa. Pitanje-10 Koja je razlika između Macro i #define? Odgovor- Makro je naziv rezerviranog mjesta za složenu definiciju. Koristite naziv makronaredbe umjesto dupliciranja složene definicije. U C i C++ makronaredbe se identificiraju simbolom iza #define. Na primjer: #define MAX 10Ovdje je MAX makronaredba koja je rezervirano mjesto za 10. Ako koristite MAX u svom kodu, predprocesor će ga promijeniti u 10 prije slanje vašeg koda kompajleru. Zašto bih trebao koristiti makronaredbe u C?Ans-u) U programskom jeziku C makronaredbe služe kao robustan alat koji programerima omogućuje stvaranje isječaka koda, konstanti, pa čak i struktura koje nalikuju funkcijama za višekratnu upotrebu. Korištenjem makronaredbi, programeri mogu poboljšati i učinkovitost i jasnoću svog koda, budući da dopuštaju zamjenu ponavljajućih ili kompliciranih izraza s jednostavnim i sažetim identifikatorima. To može uvelike poboljšati čitljivost i mogućnost održavanja koda. To je sve o MACROSIMA u C pitanjima i odgovorima. Ako imate bilo kakvih pitanja vezanih uz makronaredbe, postavite nam ih u odjeljku za komentare, rado ćemo vam pomoći s pitanjima o sposobnostimaC jezikačesto postavljana pitanja o inženjerskim pitanjima i odgovorima. O autoru: Top Coaching Institute Strastveni sam pisac sadržaja. U prošlosti sam radio za mnoge obrazovne tvrtke. Završio sam novinarstvo u tiskanim medijima. Također sam završio MBA na MICA. Ja sam osoba koja voli zabavu i vjeruje u širenje znanja među ljudima. Pripadam Amritsaru, Punjab « Studija IAS Manikanta Singha Delhi Recenzije Chandrjyoti Singh: UPSC uspjeh u prvom pokušaju »