Основы языка C

Материал из roboforum.ru Wiki
Версия от 16:25, 30 августа 2008; Blindman (обсуждение | вклад) (Функции и процедуры)
Перейти к: навигация, поиск

Введение

Язык 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

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

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

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

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