- •Урок 1: Создание среды программирования, глава 1
- •Урок 1: Создание среды программирования, глава 2
- •Урок 1: Создание среды программирования, глава 3
- •Урок 1: Создание среды программирования, глава 4
- •Урок 1: Создание среды программирования, глава 5
- •Урок 2: Создание первой собственной программы, глава 1
- •Урок 2: Создание первой собственной программы, глава 2
- •Урок 2: Создание первой собственной программы, глава 3
- •Урок 3: Шпаргалки для начинающих программистов, глава 1
- •Урок 3: Шпаргалки для начинающих программистов, глава 2
- •Урок 3: Шпаргалки для начинающих программистов, глава 3
- •Урок 4: Простейшие способы обработки изображений, глава 1
- •Урок 4: Простейшие способы обработки изображений, глава 2
- •Урок 4: Простейшие способы обработки изображений, глава 3
- •Урок 4: Простейшие способы обработки изображений, глава 4
- •Урок 4: Простейшие способы обработки изображений, глава 5
- •Урок 5: Новые методы программирования на psp, глава 1
- •Урок 5: Новые методы программирования на psp, глава 2
- •Урок 5: Новые методы программирования на psp, глава 3
- •Урок 5: Новые методы программирования на psp, глава 4
- •Урок 5: Новые методы программирования на psp, глава 5
- •Урок 6: Добавление звука в программу, глава 1
- •Урок 6: Добавление звука в программу, глава 2
- •Урок 6: Добавление звука в программу, глава 3
- •Считывание всего файла, глава 1
- •Считывание всего файла, глава 2
- •Считывание всего файла, глава 3
- •Считывание всего файла, глава 4
- •Считывание всего файла, глава 5
Урок 2: Создание первой собственной программы, глава 2
Вот мы и дошли до второй части второго урока. Если вы, не ознакомившись с предыдущими частями учебных материалов и перешли сразу к этому уроку, то вам необходимо возвратиться и прочитать предыдущие части. В противном случае многое, написанное ниже, может оказаться непонятным для вас.
Итак, у меня есть для вас две новости: хорошая и плохая. Начнем с плохой: следующая часть программы будет довольно сложной. А теперь хорошая новость: вам не придется понимать ее. И вот почему (мы оставим объяснение данной синтаксической структуры на потом): В основном этот кусок кода содержит функции, вызываемые в нашей программе. Функции позволяют вашей PSP не зависать, а также не выходить из программы, когда это не требуется. Вставьте это в свою программу (файл main.c):
/* Функция выхода */ int exit_callback(int arg1, int arg2, void *common) { sceKernelExitGame(); return 0;}
/* Подпроцесс обратного выхода */ int CallbackThread(SceSize args, void *argp) { int cbid;
cbid = sceKernelCreateCallback("Exit Callback", exit_callback, NULL); sceKernelRegisterExitCallback(cbid);
sceKernelSleepThreadCB();
return 0;}
/* Настраивает подпроцесс и присваивает ему id */ int SetupCallbacks(void) { int thid = 0;
thid = sceKernelCreateThread("update_thread", CallbackThread, 0×11, 0xFA0, 0, 0); if(thid >= 0) { sceKernelStartThread(thid, 0, 0); }
return thid;}
Сейчас мы должны задать «основную» функцию. Каждой программе на C и C++ требуется основная функция. Поскольку именно оттуда запускается основной код. Функции С (и некоторые C++) — в парадигме «procedural». Это значит, что движение происходит по линейному пути. Например, если у вас есть такой код:
//Не используйте в своей программе. //Это пример.
int myFunction() { //Print Out 'A' return 0;} int main() { //Print Out 'B' myFunction(); //Print Out 'C' return 0;}
Комментарии (если не помните, что представляют собой комментарии, смотрите выше) к данному отрезку программы расскажут обо всех нюансах. Если в коде программы напечатали бы «B», тогда ввели бы и «C», потому что компилятор запускается в основной функции. Нужно напечатать «B» в том случае, если это определяется «myFunction», которая задана выше. Она «понимает», что данный символ необходимо ввести и затем возвращается в то место, где заканчивался процесс, и печатает «C». Все ваши программы (пока Вы не достигнете совершенного C++) будут придерживаться этой линейной структуры. Поэтому «основная» функция очень важна для нашей программы. Чтобы определить функцию, вы используете следующую схему: «[return type] [function name]() { ». «The return type» — это процесс отправления функции к концу программы. Для «main» необходим тип «int»(что обозначает целое число). Имя функции — ваше имя, «main» будет, очевидно, названо «основным». Теперь зададим свою функцию, поместив следующую строку в ваш код:
[i]int main() {[/i]
Итак, сделайте еще один глубокий вдох. Вы уже многому научились! И осталась последняя (третья) часть данного урока, в которой мы раскроем самую изюминку. Если вы готовы, то мы продолжим.
