Взято у dinozavr, по мотивам https://tobotras.livejournal.com/580866.html, но эта версия гораздо интереснее, чем оригинал.
Итак, что напечатает эта программа? И почему?
#include <stdio.h>
void foo(void)
{
int a = 42;
int c = 43;
}
int bar(void)
{
int b;
return b;
}
int main(void)
{
int c;
foo();
c = bar();
printf("%d\n", c);
}
Оригинал этой записи в личном блоге.
Tags:
no subject
no subject
Re: А в какую сторону у нас стек растёт? ;-)
Я реально получил разные результаты на gcc с оптимизацией по-умолчанию и с -O3.
Re: А в какую сторону у нас стек растёт? ;-)
no subject
no subject
no subject
no subject
Интересно, что если a, b или c объявить регистровыми, то gcc даже без -O игнорирует присваивания этим переменным, если они больше никак не используются.
Оффтопик
Как тебе будет удобно (если удобно) на них ответить -- е-мейл, гтолк, что-то ещё?
Re: Оффтопик