Функции в С

Н ям повече изучаваме B, толкова по програмата. Ние събираме всички действия в една основна функция и многократно копиране на същите стъпки, ние създаваме десетки променливи с уникални имена. Нашите програми се подуват и стават по-малко и по-малко ясно, разклонение стават все по-дълги и по-разклонен.







Но от тази ситуация има начин! Сега ще научите как да създадете функции на Би Би Си. Функция, от една страна, да помогне разпределят в отделни съчетания дублират код, и второ, ще помогне да се разделите логично програмата на части, на трето място, с функциите в Б е свързана с много функции, които позволяват на нови подходи за структуриране на приложения.

Функция - назован част от програма, която може да бъде многократно призова от друга част на програмата (в който тази функция се вижда). Функцията може да отнеме фиксиран или променлив брой аргументи и не може да има аргументи. Функцията може или да върне стойност или да е празно (свободен), и не се връща.

Ние вече са запознати с много от функциите и знаят как да ги наричаме -. Тази функция библиотека stdio, stdlib, низ, Conio т.н. Освен това, основната - тя е и функция. Той се различава от останалите само по това, че е е започнало вход точка за прилагането на.
Функция в Б определя в глобален контекст. Нейният синтаксис е следния:

Най-простият пример - функция, която отнема плувка и връща квадрата на броя на

Вътре пл функция, ние сме създали една локална променлива, която се дава стойността на аргумента. Като аргумент на функция прехвърля броя 9.3. Официален връщане дума връща стойността на променливата ПТУ. Функцията може да бъде пренаписана, както следва:

В този случай, умножението се извършва на първо място, а след това на върнатата стойност. В този случай, ако функцията не връща, типът на връщане е нищожно. Например, функция, която отпечатва на квадрата на броя:

в този случай означава връщането на изхода на функцията. Ако функцията не връща нищо, връщането не мога да пиша. Тогава функцията ще приключи преди края, и ще има контрол връщане на повикващия.

Ако функцията взема без аргументи, скобите са оставени празни. Можете също така да напишете дума празнотата:

Официални и действителните параметри

Да предположим, че има функция, която връща квадрата на броя и функцията, която добавя две числа.







Считам, че хвърля prosihodit безусловно и само тогава, когато това е възможно. Ако функцията предприема редица като аргумент, а след това е невъзможно да се премине низ променлива, като "20", и т.н. По принцип, винаги е по-добре да се използва правилния тип или експлицитно хвърли към правилния тип.
Ако функцията връща стойност, то не е задължително да се съхраняват. Например, ние използваме функцията getch която чете характер и го връща.

Предаването на параметри

При изчисляването на първия метод параметър преминаване нарича трансфер значение, а вторият - предаване на показалеца. Запомнете едно просто правило: ако искате да промените дадена променлива, трябва да положите функция указател към тази променлива. Следователно, за да се промени показалеца, трябва да премине указател към указател и т.н. Например, напишете функция, която ще вземе размера на масив от тип Int и да го създадете. На пръв поглед, функцията трябва да изглежда по следния начин:

За смяна на обекта, трябва да положите указател към него, в този случай - един указател към указател.

Сега всичко работи както трябва.
По подобен пример. Напишете функция, която използва низ като аргумент и връща указател към зоната на паметта, в която се копира низа.

Този смесен рекурсия - странно функция връща 1, ако броят им е странно и 0, ако дори.

Да се ​​създаде проста библиотека. За да направите това, ще трябва да се създаде два файла - един с .h разширение и да изложат на функционални прототипи, а друг с .c на разширението и да сложи на определението за тези функции. Ако работите с IDE, трябва да бъде създадена на .h файл в заглавните файлове папки и файлове с код в изходния код файлове. Празен файл, наречен File1.h и File1.c
Препишете предишния код. Тук тя ще изглежда като заглавния файл File1.h

съдържанието на файла източник File1.c

Нашата основна функция

Да разгледаме характеристиките на всеки файл. Нашата файл, който съдържа основната функция, тя включва необходимата библиотека и файл заглавието File1.h. Сега компилатора известни функционални прототипи, тоест, той знае за връщане тип, броя и вида на аргументи и имената на функциите.

Файлът с удар с глава, тъй като по-рано заяви, съдържа функция прототип. Също така, може да се свърже библиотеки. Makrozaschita #define _FILE1_H_ т.н. Той се използва за предотвратяване на повторно копие код библиотека по време на компилация. Тези линии могат да бъдат заменени с един

Трансфер на масива като аргумент

A S споменато по-рано, име масив се заменя с показалеца, така че прехвърлянето на едномерен масив е еквивалентно на показалеца на предаване. Пример: Функцията получава масива и размера и отпечатъци:

В този пример, функцията може да бъде под формата

Също така припомнят, че върховенството на заместване на показалеца на масив не е рекурсивно. Това означава, че е необходимо да се уточни измерение на двумерен масив в предаване

Или, можете да напишете

Ако двумерен масив се създава динамично, можете да премине указател към указател. Например една функция, която използва набор от думи и връща масив от цели числа, които са равни на дължината на всяка дума:

Вместо това може да се върне указател към масив, мине масив да бъдат попълнени

В тази първа среща с функцията завършва: темата е много голям и групирани в множество статии.

RU-Cyrl 18- Упътване Sypachev S.S. 1989-04-14 [email protected] Степан Sypachev студенти