q_q ок, объявление инициализированных локальных переменных не в начале функции зло и вообще, код и данные нада разделять потомучто так нагляднее, читабельность кода больше
Пользуюсь случаем, отмечу что в С++ тоже можно отрыть строковые имена в бинарнике вот например у меня в дллке ниразу не используются даты, а там есть HH:mm:ss dddd, MMMM dd, yyyy MM/dd/yy PM AM December November October September August July June April March February January Dec Nov Oct Sep Aug Jul Jun May Apr Mar Feb Jan Saturday Friday Thursday Wednesday Tuesday Monday Sunday Sat Fri Thu Wed Tue Mon Sun GetProcessWindowStation GetUserObjectInformationA GetLastActivePopup GetActiveWindow MessageBoxA USER32.DLL 7р7SunMonTueWedThuFriSat JanFebMarAprMayJunJulAugSepOctNovDec спрашивается, что оно там делает?
amvoz var A: Integer =5; Вопрос на засыпку. HWND, HMODULE, HINST, THandle, HFILE, HICON, HBITMAP, HACCEL, HACCEL, HBRUSH, HCOLORSPACE, HDC, HGLRC, HDESK, HENHMETAFILE, HPALETTE, HPEN, HRGN, HRSRC, HSTR, HTASK, HWINSTA, и т.д. Все эти типы занимают 4 байта. Для чего они все придуманы, не проще ли вместо них использовать просто DWORD?
Да там много чего ещё. Так не сделать в Pascal a=b=5; Где a и b бъявлены переменными соответствующеготипа. Там так можно только a=5; b=5
amvoz Это, конечно, жесть. Классики, наверное, не один километр золотых "Паркеров" исписали про великое предназначение и суровую необходимость строгой типизации, а воз и ныне там :-( Вот попробуй в Цэ++ присвоить хэндлу файла присвоить указатель на имя этого файла - глядишь, и придёт просветление. А то, что Керниган с Ричи на коленке слабали цацку, которая число от символа не отличает - так за то они в следующей жизни ещё получат свою долю раскалённых шампуров.
Неубедительно. Ругаться и я могу. Прикол-то в том, что я на Pascal кодил и считал типизацию за благо. Да, я считал это круто. Всё по полочкам разложено. Вот символ, вот число. А потом перешёл на С и понял, что ошибался и типизация- такая, по крайней мере с какой я столкнулся в Pascale мне вредит только. То есть мне есть что с чем сравнивать. Ну, может, я извращенец какой, не знаю. ...цацка цацкой, а Linux на ней написан.
Угу. Только что же я руками и ногами от этой привычки-то отнекивался? Но повторяю, может, я извращенец и не нравится мне когда всё по полочкам разложено.
Долго медитировал, разницы так и не увидел И винда на ней написана и что? То, что винда не написана, скажем на ассемблере, не значит, что ассемблер плох или в нем меньше возможностей. А приводить в пример линукс - сомнительно, т.к. не самый удачный продукт. Те типы которые я приводил, относятся и к паскалю и к си и к ассемблеру. Что тебе есть с чем сравнивать, когда ты не понимаешь даже основ???
народ, бегом учить Лисп! долой все эти еретические паскали, си и прочие явы! ps: это я к тому, что смысла в данном топике не вижу. все останутся при своем мнении, и никто никому ничего не докажет. если я неправ, продемонстрируйте мне это. спасибо.
amvoz Угу. Но заметьте, что в Си ещё можно сделать так: a = b == 5; Конструкция синтаксически верная и имеющая смысл. Однако представьте, что вместо неё случайно написано a = b = 5; Представили? А потом попробуйте найти такую ошибку в программе длинней тыщи строк. Ну а в Паскале, как, думаю, Вы знаете, подобную ошибку в принципе допустить невозможно: компилятор поймает. Только не надо про "дисциплинированность". От дисциплины зависит действительно многое, но отнюдь не всё. В том же примере пропустить один = можно совершенно случайно (клава заела, например). И даже очень внимательный и дисциплинированный программист может пропустить такую ошибку. K10 Экий Вы недогадливый. На клаву меньше жать в Си приходится, чем в Паскале ))
Ну, я пас тогда То, что цацкой нехоршо называть. Типа фигня несерьёзная. А Linux- обалденный продукт Может, и не понимаю (понятие ратяжимое довольно- "Понимать основы". Кстати) А сравниваю я 2 языка по определённым критериям и говорю- это мне нравится, а это нет, а кто не согласен, ну и ладно. Вот и всё.
K10 Ну а что здесь сложного? Эти типы являются 4-байтовыми значениями в данной реализации Винды, но теоретически отнюдь не обязаны таковыми являться. Вот и выдумали разные имена типов. Другое дело, что на Си это больше фикция: все они совместимы по присваиванию. Ну а в Паскале совместимыми уже не будут, если не указывать явное приведение типов. И правильно, что не будут: HDC и HBRUSH, к примеру, обозначают совсем разные вещи, и если их смешать, ничего хорошего не будет.
Cам писал a== b вместо a=b и не раз и ещё напишу, но о-первых... Хотя да, про дисциплинированность не надо. Хорошо, этот аргумент вы не хотите слушать потому, что он убивает вас напоавл. Тогда другой аргумент- такие ошибки находятся на ять простым поиском по файлу. Попробуйте, у Вас получится.. Наконец, на клаву жать меньше приходится по факту. Мне это важно, а вам нет, на том и разойдёмся.
ТИ что вообще???? ты такое в паскале писал??? пробывал компилировать????? лутше не пробуй!!!))) а то паскаль очень ругаться на тебя будет то что ты написал на паскале так будет::: A:integer; a:=5;
Heineken Да не за что. Будут вопросы -- спрашивай, постараемся ответить amvoz А что, сей аргумент является оружием массового поражения? Меня он не убивает, просто я считаю его несостоятельным. Человеку свойственно ошибаться, как известно, в том числе ошибаться "механически". Извините, чушь. В одном и том же файле (не говоря уже о крупном проекте с десятками и сотнями исходных файлов) могут встречаться и конструкции вида a = b = c, и конструкции a = b == c. Так что поиск здесь абсолютно бесполезен. Ну, насчёт клавы точно: в Си жать приходится меньше, и я вполне признаю это достоинством данного языка. Но увы, с моей точки зрения, это его единственное достоинство, всё остальное -- недостатки.