Слово
«return»впервые сказано пользователем
valex 30.05.2005 в 04:37,
и с тех пор употреблялось
420 раз.
Сообщения со словом
«return»
Запрос выполнился за
0.0009 сек.
- 10.07.2012, 00:16. mdnt в теме
«The C Programming Language.»
... long i for i 0lu i maxi i x i 0 printf lu i getchar return 0 получаеться 36кб рантайм 1гб ты писал в том...
- 09.07.2012, 21:59. mdnt в теме
«The C Programming Language.»
... 0xfffffff unsigned long x maxi int main while getchar eof return 0 на вин7 при запуске в эклипсе ctrl z сразу...
- 04.12.2011, 03:16. Enka в теме
«Программирование, предположительно на Си»
... long double p p 1-r k-- for i rk i k i p l m-i l-i p return 1-p void main long double p 0 unsigned long...
- 01.12.2011, 15:11. Nick_ в теме
«The C Programming Language.»
... 3 data uint8 t f void data all 0x80 data b13 0x03 return data all правильно ли я понимаю что функция...
- 24.11.2011, 21:59. Saessie в теме
«Вопросник Linux»
... printf error parameter i is a negative number n i 1 return 0
- 17.11.2011, 17:50. jiffy в теме
«The C Programming Language.»
... вызываемой функции и так называемый адрес возврата return address адрес возврата это адрес на который нужно перейти после завершения работы функции итак мы откомпилировали программу и получили исполняемый файл в формате elf далее мы пытаемся этот файл запустить на исполнение например так ex-2 10 рассмотрим крайне схематично что именно произойдет 1 тот шелл shell из которого мы запускаем ex-2 10 скорее всего он определен в etc passwd узнать какой именно можно набрав echo shell вызовет т н интерпретатор команд и передаст ему в качестве параметра полное имя запускаемой программы ex-2 10 2 интерпретатор команд стандарт elf утверждает что это usr lib libc so 1 на практике он находится в другой библиотеке делает системный вызов и ядро операционной системы создает процесс после чего интерпретатор размещает в памяти все необходимые сегменты описанные в запускаемом elf файле проводит необходимую инициализацию после чего процесс передается планировщику операционной системы для исполнения 3 планировщик операционной системы в определенное время берет процесс из очереди и начинает исполнение инструкций из сегмента кода данного процесса 4 после завершения работы процесса структуры данных относящиеся к данному процессу уничтожаются а память занимаемая процессом и его структурами данных возвращается в систему в начальный момент процесс впервые был вызван планировщиком операционной системы на исполнение стек состоит лишь из одного фрейма относящегося к функции main этот фрейм называется начальным фреймом initial frame или внешним фреймом outermost frame всякий раз когда программа вызывает функцию в стеке процесса создается новый фрейм если вызванная функция вызывает другую функцию то для новой функции в стеке процесса будет создан новый фрейм причем адресом возврата будет адрес следующий за местом откуда вторая функция была вызвана первой функцией и так далее фрейм относящийся к функции исполняемый в данный момент времени называется внутренним фреймом innermost frame этот фрейм является самым последним по времени из созданных фреймов находящихся в стеке процесса всякий раз когда функция завершает свою работу function returns фрейм относящийся к этой функции удаляется...
- 17.11.2011, 02:25. jiffy в теме
«The C Programming Language.»
... a 10 void f void static int b 0xf int main void f return 0 то переменные а глобальная переменная и b статическая переменная окажутся в section data если вам придет светлая мысль определить глобальный массив мегабайтов на 40 и проинициализировать его нулями например то размер вашей программы неожиданно увеличится а с запуском программы могут возникнуть сложности ввиду ее охочести до оперативной памяти section rodata здесь располагаются данные явно объявленные константными неизменяемыми однако больше всего нас интересует сегмент bss название bss это исторический артефакт называется он так потому что еще до запуска sputnik существовал ассемблер имеющий инструкцию block started by symbol ничего подобного в наши дни в сегменте bss не содержится но название вот сохранилось segment bss это сегмент в котором располагаются все глобальные не инициализированные переменные и статические переменные явно инициализированные нулем или не инициализированные статические переменные если внимательно присмотреться к дизассемблированному при помощи objdump -d коду то можно заметить что исполнение программы на с начинается не с функции main вот так вот сначала специальная обертка init code осуществляет настройку окружения до начала исполнения собственно функции main именно этот init code обнуляет упомянутые выше данные находящиеся в сегменте bss так что если есть код код include stdio h int a void f void static int b static int b1 0 int local 0x10 printf b is 0x x b1 is 0x x local is 0x x n b b1 local b b1 local int main void f f f printf a is 0x x n a return 0 то из вывода программы видно код ccc b is 0x0 b1 is 0x0 local is 0x10 b is 0x1 b1 is 0x1 local is 0x10 b is 0x2 b1 is 0x2 local is 0x10 a is 0x0 что неинициализированная явно статическая переменная b и неинициализированная явно глобальная переменная a инициализируются неявно нулями кроме того видно что статическая переменная b статическая переменная b1 а также глобальная переменная a сохраняют свое значение между вызовами функции f в то время как локальная переменная local значения между вызовами не сохраняет не путайте глобальные определенные вне функций и статические явно объявленные с квалификатором static внутри функции данные c локальными данными функции например переменная a и массив arr которые являются локальными данными функции f располагаются в стеке stack frame принадлежащем функции foo код include stdio h void f void int a char arr 256 int main void f return 0 но о стеке чуть попозже
- 14.11.2011, 08:02. jiffy в теме
«The C Programming Language.»
... size free netdev dev pr err pfx vortex probe1 fails returns d n retval out return retval
- 13.11.2011, 01:53. jiffy в теме
«The C Programming Language.»
... to discard packet status x n inw ioaddr el3 status return 0 или так код for i 0 i 255 i outb lrs state...
- 27.10.2011, 16:34. jiffy в теме
«The C Programming Language.»
... i t line i --i line i 1 n line i 2 0 printf s line return 0 getline read line into s return length int getline char s int lim int c i j 0 for i 0 c getchar eof c n i if i lim 2 s j c if c n s j c i s j 0 return i незамедлительно видны две ошибки 1 программа...