Урок 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]

Итак, сделайте еще один глубокий вдох. Вы уже многому научились! И осталась последняя (третья) часть данного урока, в которой мы раскроем самую изюминку. Если вы готовы, то мы продолжим.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: