ძირითადი განსხვავება – მაკრო და შიდა ფუნქცია
მაკრო არის კოდის ფრაგმენტი, რომელიც არის წინასწარი პროცესორის დირექტივა. 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 ფუნქციად. იხილეთ ქვემოთ მოცემული პროგრამა.
სურათი 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++ პროგრამირებაში. მაკრო და ინლაინ ფუნქციას შორის განსხვავება ისაა, რომ მაკრო შემოწმებულია წინასწარი პროცესორის მიერ, ხოლო შიდა ფუნქცია შემოწმებულია შემდგენელის მიერ.