სხვაობა მაკრო და ინლაინ ფუნქციებს შორის

Სარჩევი:

სხვაობა მაკრო და ინლაინ ფუნქციებს შორის
სხვაობა მაკრო და ინლაინ ფუნქციებს შორის

ვიდეო: სხვაობა მაკრო და ინლაინ ფუნქციებს შორის

ვიდეო: სხვაობა მაკრო და ინლაინ ფუნქციებს შორის
ვიდეო: „ქალისა და მამაკაცის ურთიერთობები - ფსიქოლოგიური განსხვავება ორ სქესს შორის“ - ზურა მხეიძე 2024, ივლისი
Anonim

ძირითადი განსხვავება – მაკრო და შიდა ფუნქცია

მაკრო არის კოდის ფრაგმენტი, რომელიც არის წინასწარი პროცესორის დირექტივა. Inline ფუნქცია არის C++ გაუმჯობესების ფუნქცია პროგრამის შესრულების დროის შესამცირებლად. მაშასადამე, მაკრო და ინლაინ ფუნქციას შორის მთავარი განსხვავება ისაა, რომ მაკრო შემოწმებულია წინასწარი პროცესორის მიერ, ხოლო შიდა ფუნქცია შემოწმებულია შემდგენელის მიერ.

მაკრო შედის პროგრამის დასაწყისში, რომელსაც წინ უძღვის ჰეშის ნიშანი. როდესაც პროგრამაში არის მაკროს სახელი, ის იცვლება მაკროს შინაარსით.

რა არის მაკრო?

პრეპროცესორი არის პროგრამა, რომელიც ამუშავებს წყაროს კოდს, სანამ ის კომპილატორში გაივლის.ის მუშაობს წინასწარი პროცესორის ბრძანების ხაზის ან დირექტივების გამოყენებით. პროგრამაში წინასწარი პროცესორის დირექტივები მოთავსებულია საწყის პროგრამაში მთავარ პროგრამამდე. სანამ წყაროს კოდი კომპილატორში გაივლის, ის მოწმდება წინაპროცესორის მიერ წინასწარი პროცესორის დირექტივებისთვის. წინასწარი პროცესორის დირექტივებს აქვსსიმბოლო. სხვა განცხადებებისგან განსხვავებით, ისინი არ სრულდება მძიმით. წინაპროცესორული დირექტივის ერთი ტიპია მაკრო. როგორც წესი, მაკროები იწერება დიდი ასოებით.

განსხვავება მაკრო და ინლაინ ფუნქციას შორის
განსხვავება მაკრო და ინლაინ ფუნქციას შორის

სურათი 01: C++ პროგრამა მაკროებით

ზემოხსენებული პროგრამის მიხედვით, სტრიქონი 3 და სტრიქონი 4 მიუთითებს მაკროებს. ფართობის გაანგარიშებისას PI მნიშვნელობის ჩანაცვლება ხდება განსაზღვრული მაკროს გამოყენებით. მე-14 სტრიქონში volume=CUBE(მნიშვნელობა), წინასწარი პროცესორი აფართოებს განცხადებას, როგორც მოცულობა=(მნიშვნელობამნიშვნელობამნიშვნელობა).კუბის პოვნა შეიძლება დაიწეროს როგორც ფუნქცია, მაგრამ აქ ის იწერება მაკროს გამოყენებით. თუ არსებობს განცხადება, როგორც მოცულობა=CUBE(x+y), მაშინ ის გაფართოვდება მოცულობამდე=(x+yx+yx+y).

ზოგიერთი პროგრამირების ჟეტონი შეიძლება ადვილად იყოს არასწორად აკრეფილი. მათი შეცვლა შესაძლებელია მაკროების გამოყენებით. მაგალითად. define AND &&, define OR ||. მაკრო განსაზღვრება ასევე შეიძლება შეიცავდეს გამონათქვამებს, როგორიცაა define AREA 45.56.

რა არის Inline ფუნქცია?

როდესაც ფუნქციის გამოძახება ხდება, კომპილერს გარკვეული დრო სჭირდება მის შესასრულებლად. თუ ფუნქცია არ არის ძალიან რთული, პროგრამისტს შეუძლია გადაიყვანოს ფუნქცია inline ფუნქციად. იხილეთ ქვემოთ მოცემული პროგრამა.

განსხვავება მაკრო და ინლაინ ფუნქციას შორის_სურათი 2
განსხვავება მაკრო და ინლაინ ფუნქციას შორის_სურათი 2

სურათი 02: ფუნქცია Inline გარეშე

print_hello მარტივი ფუნქციაა. ფუნქციის გამოძახებისას ბეჭდავს სტრიქონს "Hello". ამ ფუნქციის შესრულების დროა 0.187 წმ. ინლაინ საკვანძო სიტყვის გამოყენებისას შემდეგნაირად, შესრულების დრო მცირდება 0,064 წმ-მდე.

ძირითადი განსხვავება მაკრო და ინლაინ ფუნქციას შორის
ძირითადი განსხვავება მაკრო და ინლაინ ფუნქციას შორის

სურათი 03: Inline ფუნქცია

ამიტომ, inline საკვანძო სიტყვის გამოყენებით, შესრულების დრო მცირდება. ინლაინ ფუნქციები შეიძლება არ იმუშაოს, თუ არის მარყუჟები, გადართვის განცხადებები და თუ ფუნქცია შეიცავს სტატიკურ ცვლადებს ან რეკურსიულ ფუნქციებს.

რა განსხვავებაა მაკრო და ინლაინ ფუნქციას შორის?

მაკრო vs inline ფუნქცია

მაკრო არის კოდის ფრაგმენტი, რომელიც არის წინასწარი პროცესორის დირექტივა, რომელიც შედის პროგრამის დასაწყისში, რომელსაც წინ უძღვის ჰეშის ნიშანი. inline ფუნქცია არის C++-ის გაუმჯობესების ფუნქცია პროგრამის შესრულების დროის შესამცირებლად.
შეფასების დრო
მაკროში არგუმენტი ფასდება ყოველ ჯერზე, როცა ის გამოიყენება პროგრამაში. inline, არგუმენტი ფასდება ერთხელ.
შემოწმებულია
მაკრო შემოწმებულია წინასწარი პროცესორის მიერ. ინლაინ ფუნქცია შემოწმებულია შემდგენელის მიერ.
საკვანძო სიტყვა
მარკო იყენებს define. inline ფუნქცია იყენებს საკვანძო სიტყვას "inline".
გამოყენება
მაკრო შეიძლება გამოყენებულ იქნას მუდმივების, გამონათქვამების, ლიტერატურული ტექსტის ჩანაცვლებისთვის და ფუნქციების დასადგენად და ა.შ. პროგრამის შესრულების დროის შესამცირებლად შეიძლება გამოყენებულ იქნას inline ფუნქცია.
შეწყვეტა
მაკრო მთავრდება ახალი ხაზით. Inline ფუნქცია მთავრდება ხვეული ბრეკეტით inline ფუნქციის ბოლოს.
განმსაზღვრელი წერტილი
ა მარკო განისაზღვრება პროგრამის დასაწყისში. inline ფუნქცია შეიძლება იყოს კლასში ან მის გარეთ.

რეზიუმე – მაკრო vs inline ფუნქცია

ეს სტატია განიხილავდა განსხვავებას მაკრო და ინლაინ ფუნქციას შორის. ეს ცნებები გამოიყენება C++ პროგრამირებაში. მაკრო და ინლაინ ფუნქციას შორის განსხვავება ისაა, რომ მაკრო შემოწმებულია წინასწარი პროცესორის მიერ, ხოლო შიდა ფუნქცია შემოწმებულია შემდგენელის მიერ.

გირჩევთ: