fb pixel
გამოიწერე YouTube-ის არხიyoutube logoგამოწერა
val-do.com-ის ლოგო
კურსებიბლოგიხ.დ.კ.წესებიკონტაქტიკონვერტორები

კურსებიბლოგიხ.დ.კ.წესებიკონტაქტიკონვერტორები
შესვლა
  1. მთავარი
  2. კურსები
  3. C პროგრამირების ენის საფუძვლები
  4. C - პირველი პროგრამა
C - პირველი პროგრამა

C - პირველი პროგრამა

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

პირველი პროგრამა C-ზე.

გავხსნათ ჩვენი ფავორიტი ტექსტის რედაქტორი, ან ნებისმიერი ონლაინ C  ედიტორი და დავწეროთ შემდეგი კოდი. ფაილს დავარქვათ hello.c

#include <stdio.h>

int main() {
    printf("Hello, world!\n");

    return 0;
}

 C არის ენა, რომლის კოდის შესასრულებლად საჭიროა მანქანურ კოდად გარდაქმნა, იგივე კომპილაცია. C-ის ფაილის გაფართოება უნდა სრულდებოდეს .c-ით.

დავიწყოთ არსებული კოდის განხილვა.

#include <stdio.h>

მოცემული ხაზი ნიშნავს, რომ ჩვენს პროგრამაში ვამატებთ C-ის სტანდარტულ I/O (Input/Output) ბიბლიოთეკას, რომელიც პასუხისმგებელია ტექსტის ეკრანზე გამოსატანად. რაც შეეხება  "main" ფუნქციას ის წარმოადგენს C-ის კოდის გასაშვებად საჭირო ფუნქციას.

main ფუნქციის შიგნით გვაქვს კიდევ ერთი ფუნქცია, სახელად printf რომელსაც გადავცემთ ერთ არგუმენტს, "Hello, world!\n". printf() ფუნქცია ხელმისაწვდომია <stdio.h> ბიბლიოთეკაში, ანუ მისი დამატების გარეშე ეს ფუნქცია არ იმუშავებდა.

ასევე შეამჩნევდით \n სიმბოლოებს, რაც ნიშნავს იმას, რომ როდესაც ეკრანზე დაიბეჭდება "Hello, world!"  პროგრამა გადავა ახალ ხაზზე.

return 0 გამოიყენება პროგრამის წარმატებით დასრულების აღსანიშნავად და ოპერაციულ სისტემას ატყობინებს, რომ პროგრამამ მუშაობა შეცდომების გარეშე დაასრულა.

C-ის კომპილაცია.

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

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

ვინაიდან ჩემი ოპერაციული სისტემაა macOS მე გამოვიყენებ მაკის ტერმინალის ბრძანეებას gcc hello.c ან cc hello.c, რომელიც კოდს გარდაქმნის მანქანურ კოდად და დააგენერირებს ბინარულ (binary) ფაილს.

gcc hello.c

დააგენერირებს ფაილს a.out ფაილს, რომელიც არის ე.წ. default, ხოლო იმ შემთხვევაში თუ გვინდა დაგენერირებულ ფაილს ერქვას ჩვენთვის სასურველი სახელი საჭიროა -o option-ის გამოყენება, რომელსაც მოსდევს სასურველი ფაილის სახელი.

gcc -o hello hello.c

ეს ბრძანება ნიშნავს, რომ კომპილირებული ფაილის სახელი იქნება hello

კოდის გასაშვებად ტერმინალში ჩავწეროთ ბრძანება ./hello რის შემდეგაც გამოისახება "Hello, world!".

C-ის შესრულების სამი ფაზა.

1. Preprocessing (წინასწარი დამუშავება).

Preprocessing არის პირველი ეტაპი, რომელიც კოდის კომპილაციამდე სრულდება. ამ ფაზაში C კომპილატორის სპეციალური ნაწილი — preprocessor — ამუშავებს სპეციალურ დირექტივებს, რომლებიც # სიმბოლოთი იწყება.

ამ ეტაპზე ხდება:

  • #include დირექტივების დამუშავება (სხვა ფაილების ჩასმა)

  • #define მაკროების ჩანაცვლება რეალური მნიშვნელობებით

  • #ifdef, #ifndef, #if პირობითი კოდის ფილტრაცია

  • კომენტარების ამოღება კოდიდან

Preprocessing-ის შემდეგ მიღებული კოდი ჯერ კიდევ C კოდია, მაგრამ უკვე „გაშლილი“ და მომზადებული კომპილაციისთვის.

2. Compiling (კომპილაცია).

კომპილაციის ფაზაში preprocessed კოდი გადადის კომპილატორში, რომელიც ამოწმებს კოდის სინტაქსსა და ლოგიკურ სისწორეს.

ამ ეტაპზე ხდება:

  • სინტაქსური შეცდომების აღმოჩენა

  • ცვლადებისა და ტიპების შემოწმება

  • C კოდის გარდაქმნა ობიექტურ კოდად (object file) — მანქანური კოდის შუალედურ ფორმატად

ამ ფაზის შედეგად პროგრამა ჯერ არ არის გასაშვები — ის მხოლოდ ნაწილია საბოლოო პროგრამის.

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

Object file არის ჩვენს მიერ დაწერილი C კოდის მანქანურ ენაზე გადათარგმნილი ვერსია, რომელიც შეიცავს მხოლოდ ამ ფაილის კოდს.
მასში არ არის ჩასმული ბიბლიოთეკების რეალური კოდი, არამედ მხოლოდ მითითებები (references), თუ რომელი ფუნქციები სჭირდება სხვა ფაილებიდან ან ბიბლიოთეკებიდან.

2. Linking (ლინკინგი).

Linking არის საბოლოო ეტაპი, სადაც ყველა ნაწილი ერთ მთლიან პროგრამად ერთიანდება.

ამ ფაზაში ხდება:

  • ობიექტური ფაილების გაერთიანება

  • სტანდარტული ბიბლიოთეკების (მაგ: stdio.h) ფუნქციების დაკავშირება

  • გარე ფუნქციებისა და ცვლადების მისამართების განსაზღვრა

როდესაც იყენებთ printf() ფუნქციას, მისი რეალური კოდი სწორედ Linking-ის ეტაპზე ემატება თქვენს პროგრამას.

 


დამატებითი რესურსები

  • Telegram
  • Discord

სხვა კატეგორიები

შეისწავლეთ ვებდეველოპმენტის ენები სრულიად უფასოდ, ისეთები როგორებიცაა Javascript, HTML, CSS და კიდევ სხვა მრავალი ენა

HTML, CSS-ის სა...

HTML, CSS-ის საწყისი კურსი, დამწყებთათვის (deprecated - მოძველებული)

ჯავასკრიპტის კუ...

ჯავასკრიპტის კურსი

JavaScript-ის D...

JavaScript-ის DOM-ის კურსი

TypeScript-ის კ...

TypeScript-ის კურსი

Angular-ის კურს...

Angular-ის კურსი

HTML, CSS-ის კუ...

HTML, CSS-ის კურსი

Reactjs-ის კურს...

Reactjs-ის კურსი დამწყებთათვის

ალგორითმები...

ალგორითმები

Node.js-ის კურს...

Node.js-ის კურსი

Dart-ის კურსი...

Dart-ის კურსი

C პროგრამირების...

C პროგრამირების ენის საფუძვლები

ბოლოს დაწერილი ბლოგები პროგრამირებაზე

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

როგორ ინახება ი...

როგორ ინახება ინფორმაცია. რა არის Bit და Byte?

რატომ არის კომფ...

რატომ არის კომფორტული სამუშაო ოთახი აუცილებელი კოდის წერისა და პროდუქტიული მუშაობისთვის?

რატომ ვერ პოულო...

რატომ ვერ პოულობენ ჯუნიორები სამსახურს?

  • C - შესავალი, გარემოს მომზადება
  • C - პირველი პროგრამა
  • C - კომენტარები
  • C - ცვლადები
  • C - მონაცემების შეტანა, გამოტანა (I/O)
  • C - მასივები
პროგრამირების კურსები
HTML, CSSJavaScriptTypeScriptAngularReactJSNodeJSC
გამომყევი
InstagramFacebookLinkedinTelegramDiscordYoutubeGithub

© val-do.com 2026 წელი - ყველა უფლება დაცულია

ვერსია 0.1.52