|
Re: lug-bg: PREVOD
- Subject: Re: lug-bg: PREVOD
- From: Andrey Andreev <andreev@xxxxxxxxxxxxxx>
- Date: Tue, 12 Oct 2004 03:39:08 +0300
Peter Pentchev wrote:
On Sat, Oct 09, 2004 at 01:19:58AM +0300, Vasil Kolev wrote:
На сб, 2004-10-09 в 00:09, George Danchev записа:
On Saturday 09 October 2004 00:38, dpp wrote:
[snip]
и е много по-правилно да се каже, че са файлове с декларации или нещо
подобно, само дето термина е останал (изглежда) от дните, когато първо
трябва да си дефинирап _най-огторе_ прототипа, и после да си дефинираш
отделно функцията (Паскала правеше така с unit-ите, имаше Interface и
после Implementation).
Ммм.. то това и сега си е така - не толкова за дефиницията, колкото за
мноооого по-честия случай на *използване* на функцията. За компилатора
е много по-лесно (а в много проекти дори стандартите за писане на код го
изискват) да е видял прототип на функцията, преди да си я използвал,
така че да може веднага да прецени 1. дали си дал правилен брой
параметри, 2. дали трябва да прави някакви конверсии (sign extending и
т.н.) с параметрите, които си дал, и 3. дали изобщо *може* да направи
конверсиите, или му подаваш ябълка на мястото на портокал. Заглавните
файлове се използват мнооооого по-рядко като пролог за *дефиниране* на
функция, отколкото като пролог за *използването* й - както и точно в
този случай, когато става дума за превод на текст, изваден от info pages
на стандартната библиотека на C - такъв текст най-вероятно ще го чете
човек, който ще използва библиотеката, а не такъв, който ще я дописва :)
Така че дори и за функции е важно заглавните файлове да са в самото
начало на програмата (след като предпроцесорът я обработи); а май няма
нужда изобщо да споменавам дефинираните в тях константи или типове :)
Още по правилно щеше да е, ако се казваха интерфейсни файлове (защото
практически за това се ползват), ама какво да се прави, тежко
наследство ...
Мдам, интерфейсен файл наистина би било малко по-точно, но няма да
отговаря много на философията на езика (в случая имам предвид C :)
Да, но особено ако погледнем и С++, то често .h файловете съдържат доста
повече от декларации и интерфейси. Само погледнете как/къде е писан STL
примерно.
Лека,
Андро
============================================================================
A mail-list of Linux Users Group - Bulgaria (bulgarian linuxers).
http://www.linux-bulgaria.org - Hosted by Internet Group Ltd. - Stara Zagora
To unsubscribe: http://www.linux-bulgaria.org/public/mail_list.html
============================================================================
|
|
|