Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Программисты долго мучаются с кодом прогаммы, изучают С++, WinAPI функции, MSDN. Потом пишут банальную систему защиты или навешивают банальный протектор, а крэкеры и реверсеры справляются с такой защитой за 5 минут. В итоге, продажи программы почти нулевые. Чтобы такого не допустить, тут самому надо немного поднабрать опыта отладки, реверсинга, тот же отладчик Ollydbg изучить или дизассемблер IDA Pro. Но где искать по крохам эти знания? Нет, конечно можно годами "методом тыка" разбираться, но куда быстрее видеокурс специальный посмотреть. Вот тут он есть: ссылка. Автор курса с большим опытом и объясняет понятно, я из этого курса много узнал про то как работает компьютер, процессор, про инструменты специальные и как с ними работать. Мои коллеги программисты на работе ничего такого и не знают, теперь я им нос утру.

Структуры в С++

Как вы уже знаете, переменная в C/C++ объявляется следующим образом:

 
 int iMyVariable;
 
 

В приведенном операторе iMyVariable объявлена как целая переменная. А вот объявление переменной типа char:

 
 char cMyChar;
 
 

Такие типы данных, как int, float, char и long, являются неотъемлемой частью C/C++ и вам не нужно писать никакого кода, чтобы сообщить компилятору о том, что означают эти слова. C/C++ позволяет вам также объ-являть свои собственные, специальные типы данных. В следующем разделе вы узнаете, как объявлять структуры, которые можно отнести к специальным типам данных.

Напишите следующий исходный код:

 
 #include <iostream.h>
 
 #include <string.h>
 
 // Объявление структуры.
 
 struct MYSTRUCTURE {
 
 	char sName[100];
 
 	int iAge;
 
 	};
 
 
 
 void main(void) {
 
 	MYSTRUCTURE MyStructure;
 
 	strcpy(MyStructure.sName, "Andy" );
 
 	MyStructure.iAge = 13;
 
 	cout << "My name is ";
 
 	cout << MyStructure.sName;
 
 	cout << " and I am ";
 
 	cout << MyStructure.iAge;
 
 	cout << " years old." << endl;
 
 	}
 
 

В коде, который вы написали, имеются два оператора #include:

 
 #include <iostream.h>
 
 #include <string.h>
 
 

Файл iostream.h включен в код, поскольку в main(void) используется cout. Файл string.h включается потому, что в main(void) используется функция strcpy() (объявленная в файле string.h). Затем вы объявляете структуру:

 
 Struct MYSTRUCTURE {
 
 	char sName[100];
 
 	int iAge;
 
 	};
 
 

Обратите внимание на синтаксис объявления структуры. Оно начинается с ключевого слова struct, за которым следует имя типа-структуры. В этой программе типу структуры присвоено имя MYSTRUCTURE. Затем следует собственно определение структуры, заключенное в фигурные скобки. Не забудьте поставить точку с запятой после закрывающей фигурной скобки. Теперь посмотрите на код внутри фигурных скобок:

 
 char sName[100];
 
 int iAge;
 
 

Это означает, что MYSTRUCTURE состоит из строки с именем sName и целого с именем iAge, sName и iAge называются элементами данных структуры; Вы объявили их "Внутри" cтруктуры MYSTRUCTURE. Код в main(void) объявляет переменную с именем MyStructure типа MYSTRUCTURE:

 
 MYSTRUCTORE MyStructure;
 
 
Вспомните, что в объявляли переменную iNum1 следующим образом:
 
 int iNum1;
 
 

Когда вы объявляете MyStructure , которая будет структурой типа MYSTRUCTURE, рассматривайте переменную MyStructure аналогично переменной iNum1. MyStructure - это имя переменной, а ее типом является MYSTRUCTURE точно так же, как типом переменной iNum1 является int. (Обратите внимание, что по традиции имя структуры составлено из символов нижнего регистра или в нем смешаны символы нижнего и верхнего регистров, как, например, в имени MyStructure, но в имени типа структуры используются только символы верхнего регистра, как, например, в MYSTRUCTURE.)

Следующий оператор в main(void) копирует строку 'Andy' в элемент данных MyStructure.sName:

 
 strcpy ( MyStructure.sName, "Andy" );
 
 

В этом операторе обращение к элементу данных sName записано как MyStructure.sName Следующий оператор присваивает значение 13 элементу данных iAge cтруктуры MyStructure: MyStructure.iAge - 13; Затем выполняется ряд операторов вывода cout:

 
 cout << "My name is ";
 
 cout << MyStructure.sName;
 
 cout << " and I am ";
 
 cout << MyStructure.iAge;
 
 cout << " years old." << endl;
 
 

Сложив все вместе, мы видим, что программа MyStruct выводит сообщение My name is Andy and I am 13 years old. (Меня зовут Andy и мне 13 лет)

<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS