надо разделять понятия «данные» и «программа». я видел файл с данными размером 10Гб — это был HD-фильм :) конечно, 1гб в экселе — это _не_ нормально, но, тем не менее, гораздо лучше, чем 1гб исходного кода на Си.
вы когда книгу на стол кладете — откуда энергия берется для преодаления гравитации? :) тело неподвижно — работа не совершается — энергия не расходуется.
if (p && p->data != 3)