Array M. УЭИТ - Язык Си - руководство для начинающих

Тут можно читать онлайн Array M. УЭИТ - Язык Си - руководство для начинающих - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Мир, год 1988. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Язык Си - руководство для начинающих
  • Автор:
  • Жанр:
  • Издательство:
    Мир
  • Год:
    1988
  • Город:
    Москва
  • ISBN:
    5-03-001309-1 /русск./
  • Рейтинг:
    3/5. Голосов: 11
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Array M. УЭИТ - Язык Си - руководство для начинающих краткое содержание

Язык Си - руководство для начинающих - описание и краткое содержание, автор Array M. УЭИТ, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru
M. УЭИТ   С. ПРАТА    Д. МАРТИН
Язык Си — руководство для начинающих

Язык Си - руководство для начинающих - читать онлайн бесплатно полную версию (весь текст целиком)

Язык Си - руководство для начинающих - читать книгу онлайн бесплатно, автор Array M. УЭИТ
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

link с filel file2

Системы, построенные на основе трансляции в ассемблерный код

Некоторые из таких систем позволяют компилировать функции, содержащиеся в нескольких файлах, сразу так же, как в ОС UNIX с помощью команды:

сс filel.с file2.c

или какого-то ее эквивалента. В некоторых случаях вы можете получить отдельные модули с кодом ассемблера, а затем объединить их, используя процесс ассемблирования.

РЕЗЮМЕ

Для создания больших программ вы должны использовать функции в качестве "строительных блоков". Каждая функция должна выполнять одну вполне определенную задачу. Используйте аргументы для передачи значений функции и ключевое слово returnдля передачи результирующего значения в вызывающую программу. Если возвращаемое функцией значение не принадлежит типу int, вы должны указать тип функции в ее определении и в разделе описаний вызывающей программы. Если вы хотите, чтобы при выполнении функции происходило изменение значении переменных в вызывающей программе, вы должны пользоваться адресами и указателями.

ЧТО ВЫ ДОЛЖНЫ БЫЛИ УЗНАТЬ В ЭТОЙ ГЛАВЕ

Как определять функцию.

Как передавать функции информацию: при помощи аргументов.

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

Где необходимо описывать аргументы: после имени функции и перед первой фигурной скобкой.

Где необходимо описывать остальные локальные переменные: после первой фигурной скобки.

Когда и как использовать оператор return.

Когда и как использовать адреса и указатели для доступа к объектам.

ВОПРОСЫ И ОТВЕТЫ

Вопросы

1. Напишите функцию, возвращающую сумму двух целых чисел.

2. Какие изменения должны были бы произойти с функцией из вопроса 1, если вместо целых складывались бы два числа типа float?

3. Напишите функцию alter( ), которая берет две переменные хи утипа intи заменяет соответственно на их сумму и разность.

4. Проверьте, все ли правильно в определении функции, приведенной ниже?

salami(num)

{

int num, count;

for(count = 1; count <= num; num++) printf(" Осалями!\n");

}

Ответы

1.

sum(j,k) int j, k;

{ return(j+k); }

2.

float sum(j,k) float j,k;

Необходимо также привести описание функции float sum( )и вызывающей программе.

3. Поскольку мы хотим изменить две переменные в вызывающей программе, можно воспользоваться адресами и указателями. Обращение к функции будет выглядеть так: alter(&x,&y). Возможное решение имеет следующий вид:

alter(px, ру)

int *рх, *ру; /* указатели на х и у*/

{

int sum, diff;

sum = *рх + *ру; /* складывает содержимое двух переменных, определяемых адресами */

diff = *рх- *ру;

*рх= sum;

*ру = diff;

}

4. Нет; переменная numдолжна быть описана перед первой фигурной скобкой, а не после нее. Кроме того, выражение num++необходимо заменить на count++.

УПРАЖНЕНИЯ

1. Напишите функцию mах(х, у), возвращающую большее из двух значении.

2. Напишите функцию chllne(ch, i, j), печатающую запрошенный символ с i-й пo j-ю позиции. Смотри программу художник-график, приведенную в гл. 7.

10. Классы памяти и разработка программ

ЛОКАЛЬНЫЕ И ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ

КЛАССЫ ПАМЯТИ

ФУНКЦИЯ ПОЛУЧЕНИЯ СЛУЧАЙНЫХ ЧИСЕЛ

ПРОВЕРКА ОШИБОК

МОДУЛЬНОЕ ПРОГРАММИРОВАНИЕ

СОРТИРОВКА

КЛЮЧЕВЫЕ СЛОВА: auto, extern, static, register

Одно из достоинств языка Си состоит в том, что он позволяет управлять ключевыми механизмами программы. Классы памяти языка Си - пример такого управления; они дают возможность определить, с какими функциями связаны какие переменные и как долго переменная сохраняется в программе. Классы памяти - первая тема данной главы.

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

КЛАССЫ ПАМЯТИ И ОБЛАСТЬ ДЕЙСТВИЯ

Мы уже упоминали раньше, что локальные переменные известны только функциям, содержащим их. В языке Си предполагается также, что о глобальных переменных "знают" сразу несколько функций. Предположим, например, что и main( ), и critic( )имеют доступ к переменной units. Это будет иметь место, если отнести unitsк "внешнему" классу памяти, как показано ниже:

/* глобальная переменная units */

int units; /* внешняя переменная */

main( )

{

extern int units;

printf (" Сколько фунтов масла находится в бочонке?\n");

scanf (" %d" , &units);

while (units != 56) critic( );

printf(" Вы должны поискать в справочнике !\n");

} critic( )

{

extern int units;

printf (" He повезло, дружок. Попытайся снова.\n");

scanf (" %d" , &units);

}

Вот полученный результат:

Сколько фунтов масла находится в бочонке?

14

Не повезло, дружок. Попытайся снова.

56

Вы должны поискать в справочнике!

(Мы сделали это.)

Обратите внимание, что второе значение units было прочитано функцией critic( ), однако main()также "узнала" это новое значение, когда оно вышло из цикла while.

Мы сделали переменную unitsвнешней, описав ее вне любого определения функции. Далее, внутри функций, использующих эту переменную, мы объявляем ее внешней при помощи ключевого слова extern, предшествующего спецификации типа переменной. Слово extern предлагает компьютеру искать определение этой переменной вне функции. Если бы мы опустили ключевое слово extern в функции critic( ), то компилятор создал бы в функции criticновую переменную и тоже назвал бы ее units. Тогда другая переменная units()[которая находится в main()] никогда не получила бы нового значения.

Каждая переменная, как мы знаем, имеет тип. Кроме того, каждая переменная принадлежит к некоторому классу памяти. Есть четыре ключевых слова, используемые для описания классов памяти: extern(для внешнего), auto(для автоматического), staticи register. До сих пор мы не обращали внимание на классы памяти, так как переменные, описанные внутри функции, считались относящимися к классу auto, если они не описывались иначе (по умолчанию они относились к классу auto).

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Array M. УЭИТ читать все книги автора по порядку

Array M. УЭИТ - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Язык Си - руководство для начинающих отзывы


Отзывы читателей о книге Язык Си - руководство для начинающих, автор: Array M. УЭИТ. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x