C/C++

Xakep, номер #047, стр. 047-082-1

Введение в С

Horrific aka Фленов Михаил (smiandr@mail.ru)

www.cydsoft.com/vr-online

Как известно, с этого номера в кодинге появился раздел для C/C++ программистов. Первая статья, та, которую ты сейчас читаешь, является введением в Си. Так что, если ты только начинаешь изучать этот язык, советую заучить все сказанное и всегда держать этот номер Х под рукой.

Комментарии

Комментарии - это текст, который не компилируется в программу и не влияет на ход ее выполнения. Он необходим только для внесения пояснений. Комментарии бывают однострочные и многострочные.

Однострочные оформляются как две наклонных черты //. Все, что находится в строке после таких черточек, воспринимается как пояснения, например:

//Это комментарий

Многострочные комментарии открывает наклонная черта со звездочкой /*, а закрывает звездочка с наклонной чертой */, например:

/*

Это многострочный комментарий

*/

Процедуры функции

Сразу хочу оговориться, потому что в языке С нет деления на процедуры и функции, как это сделано в Delphi. Как ты, наверное, помнишь, функция умеет возвращать значения, а процедура нет. В языке С все функции, просто они могут возвращать реальное значение како-то типа или несуществующее void, т.е. ничего не возвращать. В общем виде функция выглядит так:

Тип Имя (параметры)

{

//Здесь находится код процедуры

}

Перед именем процедуры обязательно ставится тип возвращаемого значения. Если не надо ничего возвращать, то нужно указать void. После имени в скобках указываются передаваемые в функцию параметры.

Открывающаяся и закрывающаяся фигурные скобки указывают на начало и конец функции. Эти скобки имеют то же значение, что begin - end в Delphi.

Любая программа должна начинаться с какой-то точки, в языке С этой точкой является процедура main.

Типы данных

Язык С - строго типизированный язык, и в нем любая переменная или значение должны иметь строго указанный тип. В стандарте реализовано большинство необходимых типов, которые схожи по значению с другими языками. Ты можешь создавать собственные типы на основе уже существующих, но для решения большинства задач достаточно тех, что уже есть.

char - означает целое число размером в 1 байт (256 бит). Его очень часто используют для хранения символов при 256-битной кодировке, но можно хранить и числа от -128 до 127.

int - целое число, его размер зависит от конкретной реализации или от разрядности процессора. Сейчас мы работаем с 32 машинами, поэтому чаще всего такой тип может хранить 4 байта, т.е. числа от -2147483648 до 2147483647.

short - короткое целое, которое может хранить числа от -32768 до 32767.

float - вещественное, которое может хранить дробные числа (размер 4 байта).

double - вещественное высокой точности, которое может хранить дробные числа высокой точности (размер 8 байт).

В языке С, в отличие от Delphi, переменные можно объявлять в любом месте программы. В общем виде это выглядит так:

Тип Имя;

Вначале указывается тип переменной, а затем идет имя. Например, вот так можно объявить переменную с именем param типа целое число int:

int param;

Все целые числа могут быть как знаковыми, так и без знака. По умолчанию считается, что тип является знаковым, но если поставить вначале ключевое слово unsigned, то такой тип не сможет хранить отрицательные числа, зато разрядность положительных - увеличивается. Например, знаковая переменная типа short может принимать значения от -32768 до 32767, а беззнаковое от 0 до 65535:

Содержание  Вперед на стр. 047-082-2

Выпуски журнала "Xakep"
Журнал Хакер. Содержание номера #001Журнал Хакер. Содержание номера #002Журнал Хакер. Содержание номера #003Журнал Хакер. Содержание номера #004Журнал Хакер. Содержание номера #005Журнал Хакер. Содержание номера #006Журнал Хакер. Содержание номера #007Журнал Хакер. Содержание номера #008Журнал Хакер. Содержание номера #009Журнал Хакер. Содержание номера #010Журнал Хакер. Содержание номера #011Журнал Хакер. Содержание номера #012Журнал Хакер. Содержание номера #013Журнал Хакер. Содержание номера #014Журнал Хакер. Содержание номера #015Журнал Хакер. Содержание номера #016Журнал Хакер. Содержание номера #017Журнал Хакер. Содержание номера #018Журнал Хакер. Содержание номера #019Журнал Хакер. Содержание номера #020Журнал Хакер. Содержание номера #021Журнал Хакер. Содержание номера #022Журнал Хакер. Содержание номера #023Журнал Хакер. Содержание номера #024Журнал Хакер. Содержание номера #025Журнал Хакер. Содержание номера #026Журнал Хакер. Содержание номера #027Журнал Хакер. Содержание номера #028Журнал Хакер. Содержание номера #029Журнал Хакер. Содержание номера #030Журнал Хакер. Содержание номера #031Журнал Хакер. Содержание номера #032Журнал Хакер. Содержание номера #033Журнал Хакер. Содержание номера #034Журнал Хакер. Содержание номера #035Журнал Хакер. Содержание номера #036Журнал Хакер. Содержание номера #037Журнал Хакер. Содержание номера #038Журнал Хакер. Содержание номера #039Журнал Хакер. Содержание номера #040Журнал Хакер. Содержание номера #041Журнал Хакер. Содержание номера #042Журнал Хакер. Содержание номера #043Журнал Хакер. Содержание номера #044Журнал Хакер. Содержание номера #045Журнал Хакер. Содержание номера #046Журнал Хакер. Содержание номера #047Журнал Хакер. Содержание номера #048Журнал Хакер. Содержание номера #049Журнал Хакер. Содержание номера #050Журнал Хакер. Содержание номера #051Журнал Хакер. Содержание номера #052Журнал Хакер. Содержание номера #053Журнал Хакер. Содержание номера #054Журнал Хакер. Содержание номера #055Журнал Хакер. Содержание номера #056Журнал Хакер. Содержание номера #057Журнал Хакер. Содержание номера #058Журнал Хакер. Содержание номера #059Журнал Хакер. Содержание номера #060Журнал Хакер. Содержание номера #061Журнал Хакер. Содержание номера #062Журнал Хакер. Содержание номера #063Журнал Хакер. Содержание номера #064Журнал Хакер. Содержание номера #065Журнал Хакер. Содержание номера #066Журнал Хакер. Содержание номера #067Журнал Хакер. Содержание номера #068Журнал Хакер. Содержание номера #069Журнал Хакер. Содержание номера #070Журнал Хакер. Содержание номера #071Журнал Хакер. Содержание номера #072Журнал Хакер. Содержание номера #073Журнал Хакер. Содержание номера #074Журнал Хакер. Содержание номера #075Журнал Хакер. Содержание номера #076Журнал Хакер. Содержание номера #077Журнал Хакер. Содержание номера #078Журнал Хакер. Содержание номера #079Журнал Хакер. Содержание номера #080Журнал Хакер. Содержание номера #081Журнал Хакер. Содержание номера #082Журнал Хакер. Содержание номера #083Журнал Хакер. Содержание номера #084Журнал Хакер. Содержание номера #085Журнал Хакер. Содержание номера #086Журнал Хакер. Содержание номера #087Журнал Хакер. Содержание номера #088Журнал Хакер. Содержание номера #089Журнал Хакер. Содержание номера #090Журнал Хакер. Содержание номера #091Журнал Хакер. Содержание номера #092Журнал Хакер. Содержание номера #093Журнал Хакер. Содержание номера #094Журнал Хакер. Содержание номера #095Журнал Хакер. Содержание номера #096Журнал Хакер. Содержание номера #097Журнал Хакер. Содержание номера #098Журнал Хакер. Содержание номера #099Журнал Хакер. Содержание номера #100Журнал Хакер. Содержание номера #101Журнал Хакер. Содержание номера #102Журнал Хакер. Содержание номера #103Журнал Хакер. Содержание номера #104Журнал Хакер. Содержание номера #105Журнал Хакер. Содержание номера #106Журнал Хакер. Содержание номера #107Журнал Хакер. Содержание номера #108Журнал Хакер. Содержание номера #109Журнал Хакер. Содержание номера #110Журнал Хакер. Содержание номера #111Журнал Хакер. Содержание номера #112Журнал Хакер. Содержание номера #113Журнал Хакер. Содержание номера #114