C++   ::   Хилл Мюррей

Страница: 344 из 357



Каждая инициализация auto и register переменных произвдится каждый раз, когда выполняется их оператор_описание. Можно передавать управление в блок, но не таким путем, котрый приводит к невыполнению инициализаций, см. #9.11. Иницилизации переменных класса памяти static (#4.4) производятся только один раз, когда программа начинает выполняться. 10. Определения Функций

Программа состоит из последовательности описаний. Код (текст программы) функции может быть задан только вне всех блоков и внутри описаний классов. Определения функций имеют вид

определение_функции: спецификаторы_описания opt описатель_функции инициализатор_базового opt тело_функции

Спецификаторы_описания register, auto, typedef не могут использоваться внутри описания класса (#8.5), а friend и virtual могут использоваться только там. Описатель функции – это описатель «функции, возвращающей ...» (#8.4).Формальные параметры находятся в области видимости самого внешнего блока тела_функции. Описатели функции имеют вид

описатель_функции:

описатель ( список_описаний_параметров )

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

Тело функции имеет вид

тело_функции: составной_оператор

Вот простой пример полного определения функции:

int max(int a, int b, int c) (* int m = (a « b) ? a : b; return (m » c) ? m : c; *)

Зде

|< Пред. 342 343 344 345 346 След. >|

Java книги

Контакты: [email protected]