Основы языка C — различия между версиями

Материал из roboforum.ru Wiki
Перейти к: навигация, поиск
(Простейшая структура программы)
(Функции и процедуры)
Строка 17: Строка 17:
  
 
=== Функции и процедуры ===
 
=== Функции и процедуры ===
 +
 +
Весь исполняемый код содержится в функциях (называемых также подпрограммами или процедурами). Функция - это обособленный участок кода, который выполняет определенные действия и может быть многократно вызван из других частей программы. Функция может возвращать значение, являющееся результатом ее исполнения. Вызывающая программа может передать в функцию параметры (аргументы), от значения которых зависит результат выполнения функции. В этом отношении функции в программе напоминают математические функции.
 +
 +
Определение функции выглядит следующим образом:
 +
 +
<source lang="c">
 +
int plus(int a, int b)
 +
{
 +
    return a + b;
 +
}
 +
</source>
 +
 +
Этот код определяет функцию с именем '''plus''', которая принимает 2 аргумента a и b, являющихся целыми числами ('''int'''), и возвращает целое число. В фигурные скобки заключено ''тело функции'', то есть последовательность операций, которые будут выполняться при каждом вызове. В данном примере, функция возвращает ('''return''') сумму своих аргументов.
 +
 +
Для указания того, что функция не принимает аргументов и/или не возвращает значения, используется зарезервированное слово '''void''':
 +
 +
<source lang="c">
 +
 +
/* Не принимает аргументы, не возвращает значение */
 +
void init(void)
 +
{
 +
    /* Тело функции */
 +
}
 +
 +
/* Принимает аргументы, не возвращает значение */
 +
void start(int number)
 +
{
 +
    /* Тело функции */
 +
}
 +
 +
/* Не принимает аргументы, возвращает значение */
 +
int receive(void)
 +
{
 +
    return 0;
 +
}
 +
 +
</source>
 +
 +
Выполнение функции, возвращающей значение, всегда должно завершаться оператором '''return'''.
 +
 
== Переменные и типы данных ==
 
== Переменные и типы данных ==
 
=== Определение переменных ===
 
=== Определение переменных ===

Версия 16:25, 30 августа 2008

Введение

Язык C был разработан в начале 70-х годов 20 века компанией AT&T, и до сих пор является одним из основных языков системного программирования. Являясь языком высокого уровня, C в то же время предоставляет возможности, присущие программированию на ассемблере, такие как низкоуровневый доступ к памяти. Программы, написанные на C, близки по эффективности к ассемблерным программам.

Важной особенностью языка C является переносимость программ. Одна и та же программа часто может быть скомпилирована для исполнения на различных процессорах с минимальными изменениями.

Структура программы

Простейшая структура программы

Простейшая законченная программа состоит из одной функции main:

<source lang="c"> int main(void) {

   return 0;

} </source>

Функции и процедуры

Весь исполняемый код содержится в функциях (называемых также подпрограммами или процедурами). Функция - это обособленный участок кода, который выполняет определенные действия и может быть многократно вызван из других частей программы. Функция может возвращать значение, являющееся результатом ее исполнения. Вызывающая программа может передать в функцию параметры (аргументы), от значения которых зависит результат выполнения функции. В этом отношении функции в программе напоминают математические функции.

Определение функции выглядит следующим образом:

<source lang="c"> int plus(int a, int b) {

   return a + b;

} </source>

Этот код определяет функцию с именем plus, которая принимает 2 аргумента a и b, являющихся целыми числами (int), и возвращает целое число. В фигурные скобки заключено тело функции, то есть последовательность операций, которые будут выполняться при каждом вызове. В данном примере, функция возвращает (return) сумму своих аргументов.

Для указания того, что функция не принимает аргументов и/или не возвращает значения, используется зарезервированное слово void:

<source lang="c">

/* Не принимает аргументы, не возвращает значение */ void init(void) {

   /* Тело функции */

}

/* Принимает аргументы, не возвращает значение */ void start(int number) {

   /* Тело функции */

}

/* Не принимает аргументы, возвращает значение */ int receive(void) {

   return 0;

}

</source>

Выполнение функции, возвращающей значение, всегда должно завершаться оператором return.

Переменные и типы данных

Определение переменных

Базовые типы данных

Массивы

Структуры

Указатели

Условные операторы и циклы

Условный оператор if

Условный оператор, варианты использования:

  1. простейший:
    • if( a==1 ){ b=2 };
  2. с веткой "иначе":
    • if( a==1 ){ b=2 }else{ c=3 };
  3. с 2 ветками "иначеесли" и веткой "иначе":
    • if( a==1 ){ b=2 }elseif( a==2 ){ c=3 }elseif( a==3 ){ d=4 }else{ e=5 };
  4. со сложным условием:
    • if( a==1 && (c==0 || q==3) ){ b=2 };

Условный оператор switch

Цикл for

Оператор цикла, варианты использования:

  1. простейший:
    • for( int a=1; a<10; a++ ){ b=b+a };
  2. с двойной переменной:
    • for( int a=1,b=2; a<10 && b>5 ; a++,b-- ){ c=c+3*b+a };

Цикл while

Препроцессор

Что такое препроцессор

Подключаемые файлы и файлы заголовков

Дополнительные определения