C
Language
C Language Advanced
Lection 23
Содержание
• Рекурсия
• Расчет факториала
• Распределение памяти
23.05.2019 0:36 Advanced 2
Рекурсия
«Для того чтобы
понять рекурсию,
надо сначала
понять рекурсию»
3
Рекурсия
Рекурсия — определение, описание,
изображение какого-либо объекта или
процесса внутри самого этого объекта или
процесса, то есть ситуация, когда объект
является частью самого себя. Термин
«рекурсия» используется в различных
специальных областях знаний — от
лингвистики до логики, но наиболее широкое
применение находит в математике и
информатике.
4
Рекурсия
Рекурсия в программировании – вызов
функции (или же процедуры)
непосредственно из самой себя. Есть
простая (непосредственная) рекурсия или
рекурсия, которая работает через другие
процедуры и функции (такой вид
называется косвенной, сложной
рекурсией).
5
Расчет факториала
6
Расчет факториала
7
Расчет факториала
8
Распределение памяти
9
Распределение памяти
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080015bc, Size: 0x00000468, Max: 0x00020000,
ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x080015bc 0x00000009 Data RW 1714 .data stm32f4xx_hal.o
0x20000009 0x080015c5 0x00000003 PAD
0x2000000c 0x080015c8 0x00000004 Data RW 1984 .data system_stm32f4xx.o
0x20000010 - 0x00000054 Zero RW 19 .bss main.o
0x20000064 0x080015cc 0x00000004 PAD
0x20000068 - 0x00000400 Zero RW 1 STACK startup_stm32f407xx.o
0x20000468 …..
Removing Unused input sections from the image.
Removing startup_stm32f407xx.o(HEAP), (512 bytes).
Removing main.o(.rev16_text), (4 bytes).
Removing main.o(.revsh_text), (4 bytes).
10
Распределение памяти
11
До начала расчета…
Распределение памяти
12
Factorial ( 5 )
Распределение памяти
13
Factorial ( 20 )
Распределение памяти
14
Factorial ( 30 )
Распределение памяти
15
Factorial ( 33 )
Распределение памяти
16
Factorial ( 50 )

C language lect_23_advanced