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: > .... > > Всъщност, проблема идва най-вече от това, че и термина на аглийски е > адски подвеждащ - фактически нищо заглавно няма в header файловете,
Напротив, съвсем заглавни са си, виж по-долу :) Е, заглавни именно в смисъл, че трябва да се сложат най-отгоре, както и се получава, когато предпроцесорът ти обработи директивата #include, която слагаш обикновено най-отгоре в .c файла :) > и е много по-правилно да се каже, че са файлове с декларации или нещо > подобно, само дето термина е останал (изглежда) от дните, когато първо > трябва да си дефинирап _най-огторе_ прототипа, и после да си дефинираш > отделно функцията (Паскала правеше така с unit-ите, имаше Interface и > после Implementation). Ммм.. то това и сега си е така - не толкова за дефиницията, колкото за мноооого по-честия случай на *използване* на функцията. За компилатора е много по-лесно (а в много проекти дори стандартите за писане на код го изискват) да е видял прототип на функцията, преди да си я използвал, така че да може веднага да прецени 1. дали си дал правилен брой параметри, 2. дали трябва да прави някакви конверсии (sign extending и т.н.) с параметрите, които си дал, и 3. дали изобщо *може* да направи конверсиите, или му подаваш ябълка на мястото на портокал. Заглавните файлове се използват мнооооого по-рядко като пролог за *дефиниране* на функция, отколкото като пролог за *използването* й - както и точно в този случай, когато става дума за превод на текст, изваден от info pages на стандартната библиотека на C - такъв текст най-вероятно ще го чете човек, който ще използва библиотеката, а не такъв, който ще я дописва :) Така че дори и за функции е важно заглавните файлове да са в самото начало на програмата (след като предпроцесорът я обработи); а май няма нужда изобщо да споменавам дефинираните в тях константи или типове :) > Още по правилно щеше да е, ако се казваха интерфейсни файлове (защото > практически за това се ползват), ама какво да се прави, тежко > наследство ... Мдам, интерфейсен файл наистина би било малко по-точно, но няма да отговаря много на философията на езика (в случая имам предвид C :) Между другото, някой учил ли е Ada или Modula-2/3 по материали на български език, или писал ли е материали на български за Ada/Modula-2/Modula-3, и може ли да каже дали там си се употребява терминът 'интерфейс', както би трябвало да бъде? (в тези езици и на английски тези файлове си се наричат интерфейсни или просто интерфейси) > Затова май е най-добре да се придържаме към header, като се правят > грешки и мазаници, поне да са малко на брой, да не се опитваме да > преведем и без това грешен термин ... Пффффт. Тук не съм съгласен - според мен терминът не е точно грешен, а по-скоро леко охудожествен (като ще ковем нови думи/термини ;) - ама както и да е :) Поздрави, Петър -- Peter Pentchev [EMAIL PROTECTED] [EMAIL PROTECTED] [EMAIL PROTECTED] PGP key: http://people.FreeBSD.org/~roam/roam.key.asc Key fingerprint FDBA FD79 C26F 3C51 C95E DF9E ED18 B68D 1619 4553 If the meanings of 'true' and 'false' were switched, then this sentence wouldn't be false.
pgpetWQN42zGT.pgp
Description: PGP signature
