Выпуск 08: C

 
     

Архив рассылки

С новой волной подписчиков появилась волна желающих изучать Си :) За последние сутки к нам прибавилось ещё 127 подписчиков :)

Значит изучать будем, но как второй язык. Как это понять? Объяснять что делает та или иная функция я буду на Дельфи, а потом показывать как это всё осуществляется с помощью языка Си.

Поскольку у меня нету таких компиляторов, как Borland C++ Builder и MS Visual C++ (вернее есть, но не работает :), мы будем использовать Dev-C++. Он он становится всё популярнее и является бесплатным :) А также у него есть одно замечательное свойство - он также может компилировать OpenGL приложения! :) Забираем его здесь:

http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_setup.exe

Это, конечно, не Visual C++ или Builder, но тоже очень хороший. Начнём с его установки.

Инсталлируем Bloodshed Dev-C++

Скачайте файл (9Мб) и запустите его. Должна выскачить табличко со странным приветствием, которое гласит: не инсталлируйте поверх существующей версии :) Ну и придумали.... Приветствие называется :) Ладно. Нажмите Ok и подождите секундочку. В новом окне выберите язык инсталляции. У меня русский язык. Согласитесь с условиями. Нажмите далее (будем инсталлировать полную версию). Теперь выберите папку, куда будете пихать эту прогу и инсталлируйте её. Несколько секунд и всё готово :) Вам может выскачить табличка, которая спрашивает, хотите ли вы инсталлировать для всех пользователей. Я нажимаю Yes, а вы как хотите :) Вот и всё. Теперь осталось запустить приложение (если оно само не запустилось). После запуска появится не нужная табличка. Выключите её. Перед вами теперь "висит" окно конфигурации. Здесь вы можете выбрать язык интерфейса (я оставил английский), скин кнопок (я выбрал из списка Blue). Галочку на Use XP Theme я не ставил. Вы как хотите :) Нажимаем Next. Помните про вспомогательный список процедур в Дельфи, который появляется после того, как напечатаете точку? Тут тоже такой есть. Если хотите его активировать, оставьте всё как есть (я так и сделаю), а если не хотите - переключитесь на No... Нажимаем Next. Дальше ничего не меняем и опять Next. Это уже займёт некоторое время :)

Можете выпить чашечку кофе, а я лучше послушаю Kai Tracid и ATB (я всё делаю вместе с вами :) Ждём..... ATB - Summer. Звучит классно. А также и Humanity. Только процессор очень загружен :) "The summer's here, you wanna feel somebody..." :D ......я без музыки не могу! :) И выпуски пишу под музыку :)

О! Готово. Даже песня не успела закончится :) Если у вас тоже закончилось, нажмите OK. Программа загрузилась. Новый интерфейс - новый музон :)

Перед вами появились два окна: одно окно - главное окно программы, а другое - надоедливые подсказки. Закройте последнее окно (и пометьте галочку ниже). Вот это и есть Dev-C++. Только мы сейчас не будем лезть в настройки, как мы делали с Дельфи. Если что нибудь понадобится, думаю, не сложно найдёте и сами :)

Первая Си программа

Начните новый проект. Способ выберите сами:

http://spider3d.narod.ru/img/08/01.gif

или

http://spider3d.narod.ru/img/08/02.gif

В меню выберите Source File. Перед вами откроется уже знакомый редактор кода (другого режима там и нету :) Добавьте следущую строчку:

main(){}

Вот и всё. Это ваша первая Си (одновременно и С++, и C#) программа :) Запустите программу (как и в Дельфи, клавиша F9). Перед вами должно мелькнуть консольное окно. Вы уже знаете почему оно так быстро исчезает, и что надо зделать, чтобы такого небыло. Но, думаю, не знаете как :) Не так, как в Дельфи, здесь ничего автоматически не подключается (как модуль System в Дельфи) к проекту. Вам предётся самим добавить нужный модуль, и потом из него вызвать нужную процедуру. Приведите программу в такой вид:

#include // Модуль для функции 'printf()'
#include // Модуль для функции 'getch()'
main() // Главная функция программы
{ // Открытие командных скобок
    printf("Hello, World! :)"); // Выводит данные на экран
    getch(); // Считывает данные с клавиатуры
} // Закрытие командных скобок


Вот как это выглядит в программе:

http://spider3d.narod.ru/img/08/03.gif

Теперь давайте разберёмся со всеми этими строчками. Комментарии вам уже знакомые. Осталось только добавить, что второй вид комментариев записывается между /* и */ (а в Дельфи было { и }). Тут дожно быть всё понятно :)

А что означают фигурные скобки в Си? Это командные скобки, как begin и end в Дельфи. { = begin; } = end. Такая запись значительно короче. Краткость - одно из самых замечательных свойств в языке Си. #include - это тоже самое, что и Uses в Дельфи, т.е. указывает присоединяемый модуль, только, не так, как в Дельфи, для каждого модуля придётся отдельно писать эту строчку. Но, в OpenGL приложениях их будет не много. Сам модуль (также часто называемый заголовочным файлом) указывается между <и >. Модули в Си имеют расширение *.h (от слова header). Расширение надо указывать, иначе компилятор вас не поймёт :) Но заговочные файлы могут находится и в папке с проектом. В таком случае они должны быть указанны между двойными кавычками. На остальное пока не обращайте внимания. Закончим с подпрограммами и всё будет ясно.

Поскольку в этом выпуске мы не будем вглублятся в этот язык, я упомяну только самые важные факты.

1. Язык Си чуствителен к регистру букв, т.е. переменные "A" и "a" будет разными! Не забывайте этого!
2. После каждой функции надо ОБЯЗАТЕЛЬНО ставить скобки!
3. Оператор присваевания в Си является =, а оператор равности - ==. Не путайте!
4. Строки записываются не между апострофами, а между двойными кавычками (как в примере)!
5. Ни одна функция не начинается и не имеет большой буквы!
6. При описании переменных сначала указывается её тип, а потом название! Двоеточие не нужно!

Это конечно не всё. Пока этого материала не берите в голову в серьёз, потому что мы с этим ещё будем работать и я буду приводить вам примеры. Но сначала я хотел бы закончить с подпрограммами.

Это был, так сказать, вводной выпуск номер 2 :) По этому так быстро и вышел.

Кстати. Новый дизайн рассылки - "Матрица" :D Как он вам? Или, может лучше оставить прежний? :)

На сегодня всё.
 

2005-10-15

Автор, ведущий и дизайнер рассылки: Евгений Нарышкин spider3d@yandex.ru

OpenGL для начинающих (under construction): http://spider3d.narod.ru/

Хостинг от uCoz