вторник, 16 ноября 2010 г.

Первый урок - Hello world на C(си)

В языке C очень малый набор ключевых слов, т.к. только несколько типов переменных, слова управления циклами и функциями.
Еше необходимо заметить, что C язык компилируемый, т.е. для его выполнения необходимо его скопилировать - преобразовать из текста языка в машинный код.

При выполнении программы, написаной на C необходимо описать главную функцию main, которая и будет вызываться при запуске.
Функция main является такой-же обычной функцией как и все остальные, в целом у нее есть два несколько прототипов описания.
void main(), int main(), int main(int,char **) и void main(int,char **).

Первое слово перед main это тип функции - тип значения которое она может веруть int - целочисленное число, void (пусто) ничего.
Затем идет имя функции (в нашем случае main), а далее в круглых скобках - принимаемые параметры, также сначала тип, а затем название переменной.
Причем как в описании, так и в самой функции названия могут отсутствовать.
Отсутствие название переменных и для чего это - обсудим потом


Тут нужно учесть, что компилятор gcc считает что функция main должна обязательно иметь тип int, для того чтобы вернуть код выполнения программы, а вот скажем bcc от Borland допускает и тип void, хотя в этом случае на самом деле возвращает 0.
Чтобы поддерживать общие стандарты лучше описывать функцию main все-же через тип int

Функция main отличается от других библиотечных функций тем, что она противоположная по смыслу, в остальных функциях вы знаете их прототип для вызова, но не знаете/видете код функции, а для main все как раз наоброт - компилятор знает ее описание, но вот код - должны написать вы.

И так самый примитивный рабочий код на C!
int main()
{
return 0;
}

Данный код можно скомпилировать в программу и даже выполнить - правда, он ничего не выполнит, потому как единственная строка кода в нем return 0; - выйти из функции и вернуть значение 0.
Ну да в C - разделитель комманд точка с запятой ';'


Для того. чтобы что-нибудь вывести на экран нужно вызвать функцию для вывода, впрочем большинство стандартных функций уже давно написаны. Например для вывода на экран(консоль) есть специальная библиотека stdio, которая содержит тьму функций.
Но нам интересна пока только одна - printf - форматированный вывод на экран.
Чтобы подключить библиотеку нужно указать директиву include с указанием имени библиотеки, имя библиотеки можно написать в угловых скобках (тогда компилятор библиотеку будет искать в стандартной папке, либо в двойных ковычках тогда он сначала ищет в текущем каталоге, а потом в стандартом)
Все директивы - это команды к препроцессору, т.е. процессу вызываемому до компиляции, это облегчает жизнь программистам, в противном случае им пришлось бы самим писать все прототипы функций вручную.
Ну и директивы пишутся через знак #, всего их не очень много основные: include, define, ifdef, else, error

Для нашего примера это #include <stdio.h> - т.е. включить заголовки(описания прототипов) от библиотеки stdio (расширение .h - как раз указывает что это заголовки от англ. header)

Функция printf поддерживает множество аргуметов, но пока нас интересует только первый - а именно базовая строка, которая будет выводится на экран.
Cамый примитивный рабочий код на C с выводом на экран!
#include <stdio.h>
int main()
{
printf("Hello, World!\n");
return 0;
}



Т.к. в качестве первого аргумента функции printf является строка, то приходится квотировать некоторые символы, например \n - означает перевод строки, а \" - двойную кавычку


Теперь скомпилировав и выполнив это программу, увидем на экране Hello, World

Если, вы конечно, запускаете ее из консоли (в винде через cmd), а в линуксе через терминал.

Ну и чтобы скомпилировать программу - команда gcc hello.c -ohello.exe - это если у вас gcc

Комментариев нет:

Отправить комментарий