Содержание
- 2. План Лекция 9 План Классы памяти переменных Препроцессор
- 3. Классы памяти переменных Автоматический класс Статический класс Регистровый класс Внешний класс Внешний статический класс Изменяемость переменных
- 4. Классы памяти переменных Классы памяти переменных Класс памяти переменной определяет область видимости и время жизни переменной
- 5. Классы памяти переменных Классы памяти переменных Автоматический класс памяти (auto) задается необязательным ключевым словом auto при
- 6. Классы памяти переменных Классы памяти переменных Автоматический класс памяти (auto) задается необязательным ключевым словом auto при
- 7. Классы памяти переменных Классы памяти переменных void main() { auto int i; for (i=0; i int
- 8. Классы памяти переменных Классы памяти переменных void main() { auto int i; for (i=0; i int
- 9. Классы памяти переменных Классы памяти переменных Автоматический класс памяти auto #include void func(int p) { auto
- 10. Классы памяти переменных Классы памяти переменных Статический класс памяти (static) задается ключевым словом static при описании
- 11. Классы памяти переменных Классы памяти переменных Пример. Автоматическая и статическая переменные #include void stat(); /* прототип
- 12. Классы памяти переменных Функции в Си Пример. Автоматическая и статическая переменные auto = 0, static =
- 13. Классы памяти переменных Классы памяти переменных Регистровый класс памяти (register) задается ключевым словом register при описании
- 14. Классы памяти переменных Классы памяти переменных Внешний класс памяти (extern) внешние переменные – переменные, определенные вне
- 15. Классы памяти переменных Классы памяти переменных Внешний класс памяти (extern) определение внешней переменной должно быть единственным
- 16. Классы памяти переменных Классы памяти переменных Внешний класс памяти (extern) определение внешней переменной – в одном
- 17. Классы памяти переменных Классы памяти переменных Внешний класс памяти (extern) инициализировать внешние переменные можно только в
- 18. Классы памяти переменных Классы памяти переменных Внешний статический класс памяти Внешние переменные могут быть объявлены как
- 19. Классы памяти переменных Квалификаторы const и volatile Определение любой переменной может предваряться квалификаторами const или volatile
- 20. Классы памяти переменных Описание переменных: общая схема Квалификаторы и модификаторы const volatile auto static register extern
- 21. Препроцессор Препроцессор: что это? Директивы препроцессора Подключение файлов Условная компиляция Макросы
- 22. Препроцессор Препроцессор: что это? Препроцессор – специальная программа, автоматически вызываемая компилятором перед собственно компиляцией 1й проход:
- 23. Препроцессор Директивы препроцессора Три основных типа директив Подключение файла #include Условной компиляции #if, #ifdef, #ifndef, #else,
- 24. Препроцессор Подключение файлов Зачем? Позволяет разделять программу или модули на интерфейс и реализацию (см. Принципы структурного
- 25. Препроцессор Условная компиляция Зачем? Один и тот же исходный код для различных платформ Необходимость иметь различный
- 26. Препроцессор Условная компиляция Другой пример
- 27. Препроцессор Макросы Предоставляют возможность параметризованной автоматической текстовой замены Зачем? Порождаемый код иногда может быть быстрее Нет
- 28. Препроцессор Макросы: используйте ( ) Всегда заключайте параметры макро-функций в скобки!!! #define plusone(x) x+1 … i
- 29. Препроцессор Макросы: думайте о побочных эффектах Частой причиной побочных эффектов являются операции “++“ и “--“ Всегда
- 30. Препроцессор Макросы: оператор # Оператор # в макросах конвертирует аргумент в строковую константу Всегда избегайте дополнительных
- 31. Препроцессор Макросы: оператор ## Нужен крайне редко Склеивает две лексемы #define GENERIC_MAX(type) \ type type##_max(type x,
- 32. Препроцессор Другие директивы: #error Позволяет препроцессору инициировать ошибки компиляции #error сообщение Пример #if defined(WINDOWS) ... #elif
- 33. Препроцессор Другие директивы: #line Позволяет переопределить номер строки для компилятора #line n или #line n “file”
- 34. Препроцессор Макросы: некоторые общие свойства Макросы могут содержать макросы Препроцессор может делать несколько проходов для повторной
- 35. Препроцессор Препроцессор: резюме Препроцессор позволяет программисту автоматически модифицировать исходный код программы перед компиляцией Подключение файлов Условная
- 37. Скачать презентацию