Поради излишък от свободно време (обикновенно предназначено за сън) реших и аз да изцапам форума с малко информация
Тази тема е с цел да ви даде начална скорост в програмирането на
C и да ви спести хамалщината по издирване на компилатор и инсталацията му
Have Fun!
Какво ще ви е нужно за да започнете работа?1. Най-важното нещо е редактор на текст
Него можете да си го избирате по собствен вкус и предпочитания, започвайки от
NotePad, та чак до
MS Visual C++ (който напоследък ползвам само като редактор, поради лични причини от сорта на това, че ме дразни с правенето на куп излишни файлове). Предимството на
MSVC++ пред
NotePad главно е, че оцветява кода по специален начин, така че ви е по-лесно да го четете.
2.След като си изберете текстов редактор и си натракате кода, определено ще ви трябва компилатор (ако го чувате за първи път може да ви звучи смешно
). Повечето компилатори вървят в комплект с текстов редактор (или по-скоро някои текстови редактори вървят в комплект с компилатори
), което разбира се не означава че ако пишете на определен редактор, трябва задължително да компилирате с неговия компилатор. Лично ви препоръчвам
DJGPP за да се озорите и вие като мен
А сега сериозно, по принцип компилатора който ползва
DJGPP е последна версия и програмата която ще създаде компилацията има по-голяма стабилност. Лошото е настройката, която лично мен ме изнерви, но с малко упоритост става.
Как да инсталираме DJGPP?Ще карам накратко:
-Дърпате инсталационния файл от
тук-Стартирате дръпнатия файл
-Натискате
Browse-Избирате
C:-Натискате
Make New Folder-Въвеждате
DJGPP за име
-Натискате
OK-Натискате
InstallГотови сте с инсталацията на
DJGPP! (за жалост не можете да компилирате на него много просто, но като стигнем до там ще обясня, имайте търпение!!
)
Най-накрая е време да напишем някой и друг ред код.
Първо да поговорим за синтаксиса на
C.
Всеки
source код (нещото което се компилира) на C започва с няколко реда в който описвате
библиотеките с функций, които мислите да ползвате. По принцип, ако не решите да ползвате библиотека създадена от вас, (а аз няма да ви кажа как да си създадете, за да не решавате да ползвате такава
) няма нужда да се притеснявате къде се намират тези библиотеки. Важното е да знаете имената на най-честоизползваните такива, а в C те са:
stdio.h,
string.h,
conio.h и
math.h. Сигурно се чудите, "Защо тия имена имат точки вътре, пък и
h-ове на всичкото отгоре?!" Това е защото
.h всъщност е разширението на библиотечните файлове и идва от
header, както ги наричат някои, които знаят английски
Хедърите/библиотеките се добавят по следния начин:
#include <име на библиотека>
Такам. В първите ви програмистски пориви на C ще ви е нужно само още едно нещо. Това е заглавната функция
main(), която трябва да присъства във всяка програма.
"Какво е функция? Защо main? Защо ()? Защо заглавна?"
Функциите в C са гръбнакът на всяка програма. Трябва да имате поне една такава функция за да ви работи програмата (да, това е
main()) Функциите имат
тип, приемат
аргументи и
връщат стойност от типа от който е функцията. Можете да извиквате функции във други функции и така указвате тяхното изпълнение, но това за сега не ви е нужно.
Синтаксисът на една функция е следния:
тип име(тип1 аргумент1, тип2 аргумент2, ...)
{
операция1;
операция2;
.
.
.
return стойност_за_връщане;
}
Така вие ще създадете функция от тип
тип, която се казва
име, приема аргументи
аргумент1 от тип
тип1,
аргумент2 от тип
тип2 и т.н. и връща стойност
стойност_за_връщане, която евентуално функцията е генерирала и която е от тип
тип.
Аргументите се намират между 2 кръгли скоби ( '(' и ')' ) и са отделени със запетайки ( ',' ) един от друг, като пред всеки се пише и неговия тип, а когато функцията не приема аргументи тези скоби пак са там, ама са залепени една до друга и между тях няма нищо.
Мястото между фигурните скоби ( '{' и '}' ) се нарича
тяло на функцията. В него тя върши каквото върши и накрая (не винаги накрая) се очаква да върне стойност, което пък се осъществява с оператора
return. Много е важно да не забравяте, че в края на всяка операция, (обикновенно всяка такава е на отделен ред) има
точка и запетайка ( ';' ).
последно нещо което е хубаво да се знае: '//' се използва за
коментар. Т.е. всичкият текст на същия ред след '//' не се чете от компилатора, а служи на програмиста за да се ориентира по-лесно в кода, както и за забележки към четящия (четящия кода
).
И вече наистина да съберем всичко това и да видим какво получаваме. Следната програма принтира(изкарва) текстът
"Hello World!" (нямате идея каква информационна вълна ще ви затрупа ако го издирите из гугъл) на "стандартния изход" - вашият монитор
проблем при обикновенната реализация на тази програма е, че ако я стартирате през Виндовс ® искача нещо черно и отшумява преди да сте се осетили какво става. За целта ще използваме функция която изчаква вход от клавиатурата, за да продължи изпълнението на програмата. Ето и кода на цялата работа:
#include <stdio.h> //да не се бърка със studio.h !!
#include <conio.h>
int main ()
{
printf ("Hello World!\n");
getch ();
return 0;
}
Да анализираме написаното. Първо декларираме, че ще използваме двете библиотеки
stdio.h и
conio.h (може да забележите и моя малък коментар, породен от честа грешка
)
След това дефинираме функцията
main() от тип
int (няма ограничение за типа на
main() но е прието той да е или
int или
void (за типовете по-късно). Който е внимавал по-рано може да забележи че
main() няма аргументи. В повечето от простите програми, не са ни нужни такива.
Следва извикването на функцията
printf() която е дефинирана в библиотеката
stdio.h. Тази функция преобразува аргументите си в текст и ги отпечатва на екрана (ще видите как). В случая аргументите му са
"Hello World!\n". Двойните кавички по правило заграждат текст.
\n се третира като специaлен символ и значи
нов ред.
Следва извикването на функцията
getch(), която е дефинирана в
conio.h. Тя е отговорна за това, че виждате отпечатания текст, защото иначе той би отленял в небитието, непосредствено след отпечатването си.
и накрая операторът
return прекъсва функцията
main() и тя връща стойността
0 (на кой я връща няма значение, за това се грижи някой друг
)
Дотук добре. Имаме вече код, за който се надяваме че работи. Как ще се убедим? Трябва да го компилираме. Да предположим че сте го запазили в директорията
C:\test.c (
.c, защото е код написан на езика
C, но и
test.txt дa го кръстите няма значение).
Сега става опасно. Съществуват два начина за компилация с DJGPP, един, които е сложен всеки път, и друг който е сложен само първия път
Ето първия:
-Натискате
Start->Run.. и пишете в прозореца дето изскача
cmdпосле изскача още един черен прозорец който може да ви изглежда малко зловещо, но иначе нищо лошо няма да ви стори. Наричаме го
конзола.
-Пишете заклинанието
c:\djgpp\bin\setdjgpp c:\djgpp c:/djgpp
конзолата общо взето нищо не прави, освен че изкарва нов ред. Пишете още едно заклинание
C:\djgpp\bin\gcc -Wall -lm c:\test.c -o c:\test.exe
Готови сте!! Сега влизате в
C: и си пускате
test.exeЕто и втория начин:
-Отваряте
NotePad и в него въвеждате двете заклинания
CALL c:\djgpp\bin\setdjgpp c:\djgpp c:/djgpp
C:\djgpp\bin\gcc -Wall -lm %1.c -o %1.exe
Запазвате го като
Compile.batСлед това премествате
Compile.bat в директорията в която е файлът който ще компилирате (в нашия случай
C:)
Пак натискате
Start->Run.. и пишете в прозореца дето изскача
cmdСлед това пишете
cd <директорията със Console.bat и сорсовете>
в случая
cd C:
след това пишете
Compile test
и сте готови
Това беше моя кратък урок за първа програма на C. Ако още четете, значи имате здрави нерви и много инат. Надявам се темата да ви е харесала, защото положих доста труд (има - няма 2 часа
) докато успея да я създам.
HF и ако имате въпроси - Feel Free to Ask