Содержание
- 2. Стандарты языка Си Начало 70-х: появление языка Си 1978: Kernighan, Ritchie (K&R) 1989: ANSI C (C89)
- 3. Основные требования к языку Си (мои «измышлизмы») Язык должен быть эффективным как ассемблер На нем должно
- 4. Основные концепции языка Си Си - язык "низкого" уровня Си - "маленький" язык c однопроходным компилятором
- 5. Получение исполняемого файла 0. // hello.c 1. #include 2. 3. #define N 3 4. 5. int
- 6. Получение исполняемого файла
- 7. Получение исполняемого файла
- 8. A1: обработка препроцессором Препроцессор выполняет: вырезание комментариев; текстовые замены (директива define); включение файлов (директива include). Файл,
- 9. Результат работы препроцессора ... int __attribute__((__cdecl__)) __attribute__ ((__nothrow__)) puts (const char*); ... int main(void) { for(int
- 10. A2: трансляция на язык ассемблера Компилятор выполняет трансляцию программы, написанной на Си, на язык ассемблера. Язык
- 11. Результат работы компилятора .section .rdata,"dr" LC0: .ascii "Hello, world!\12\0" .text ... mov DWORD PTR [esp+28], 0
- 12. A3: ассемблирование в объектный файл Ассемблер выполняет перевод программы на языке ассемблера в исполнимый машинный код.
- 13. Результат работы ассемблера 00000000 b .bss 00000000 d .data 00000000 r .rdata 00000000 t .text U
- 14. A4: компоновка Компоновщик принимает на вход один или несколько объектных файлов и собирает по ним исполнимый
- 15. Опции компилятора и компоновщика с99 [опции] [выходной_файл] файл_1 [файл_2] -pedantic -Wall -Werror -c (--compile) -o -g[level]
- 16. Примеры запуска компилятора // 1. Препроцессор gcc –E main.c > main.i // 2. Трансляция на язык
- 17. Примеры запуска компилятора // Вместо 1-4 можно написать gcc –o main.exe main.c Следующие опции обязательны для
- 18. Представление о формате исполняемого файла
- 19. Запуск программы
- 20. Запуск программы
- 21. Абстрактная память и процесс.
- 22. Функция main int main(void); int main(int, char** argv); Значение, возвращаемое main @echo off hello.exe if errorlevel
- 23. Параметры функции main #include int main(int argc, char** argv) { for(int i = 0; i printf("%s\n",
- 25. Скачать презентацию