Программистское


Дано:
#include <stdio.h>
#include <stddef.h>

ptrdiff_t frame(char * prev) {
	char dummy;
	if (prev) {
		return prev - &dummy;
	}
	else return frame(&dummy);
}

void main() {
	printf("%ld\n", frame(0));
}

Что эта программа печатает, будучи скомпилирована с отключенной оптимизацией? Что - с включенной оптимизацией? Почему?