- 001
- 002
- 003
- 004
- 005
- 006
- 007
- 008
- 009
- 010
- 011
- 012
- 013
- 014
- 015
- 016
- 017
- 018
- 019
- 020
- 021
- 022
- 023
- 024
- 025
- 026
- 027
- 028
- 029
- 030
- 031
- 032
- 033
- 034
- 035
- 036
- 037
- 038
- 039
- 040
- 041
- 042
- 043
- 044
- 045
- 046
- 047
- 048
- 049
- 050
- 051
- 052
- 053
- 054
- 055
- 056
- 057
- 058
- 059
- 060
- 061
- 062
- 063
- 064
- 065
- 066
- 067
- 068
- 069
- 070
- 071
- 072
- 073
- 074
- 075
- 076
- 077
- 078
- 079
- 080
- 081
- 082
- 083
- 084
- 085
- 086
- 087
- 088
- 089
- 090
- 091
- 092
- 093
- 094
- 095
- 096
- 097
- 098
- 099
- 100
Я в 2006 году учился работать на Дельфи.
var
Form1: TForm1; f:file of byte; rb,re:array[0..6,0..10] of byte;
rb1,re1:array[1..6] of byte;h:shortint;go:boolean;
tm:array[0..6,0..1,0..10] of record
h,m:byte;
end;
...
procedure prnt1;
var t:string;
begin
{Вывод времени уроков и перемен на форму. Начало 0,1. 11 уроков 2-23}
str(rb1[h],t);
form1.edit1.text:=t;
str(re1[h],t);
form1.edit2.text:=t;
str(rb[h,0],t);
form1.edit3.text:=t;
str(re[h,0],t);
form1.edit4.text:=t;
str(rb[h,1],t);
form1.edit5.text:=t;
...
form1.edit21.text:=t;
str(re[h,9],t);
form1.edit22.text:=t;
str(rb[h,10],t);
form1.edit23.text:=t;
end;
...
procedure prnt2;
var t1,t2,t3,t4:string;a1,a2,b1,b2,c,d:integer;
begin
{Вывод списка уроков из текстового файла на форму}
val(form1.edit1.text,a1,c);
val(form1.edit2.text,a2,c);
rb1[h]:=a1;
re1[h]:=a2;
{1 урок}
b1:=a1;
b2:=a2;
val(form1.edit3.text,d,c);
rb[h,0]:=d;
b2:=b2+d;
if b2>=60 then
begin
b1:=b1+1;
b2:=b2-60;
end;
str(a1,t1);
str(a2,t2);
if a2<10 then t2:='0'+t2;
str(b1,t3);
str(b2,t4);
if b2<10 then t4:='0'+t4;
tm[h,0,0].h:=a1;
tm[h,0,0].m:=a2;
tm[h,1,0].h:=b1;
tm[h,1,0].m:=b2;
form1.label15.Caption:=t1+':'+t2+' - '+t3+':'+t4;
val(form1.edit4.text,d,c);
re[h,0]:=d;
b2:=b2+d;
if b2>=60 then
begin
b1:=b1+1;
b2:=b2-60;
end;
{2 урок}
a1:=b1;
a2:=b2;
val(form1.edit5.text,d,c);
rb[h,1]:=d;
b2:=b2+d;
if b2>=60 then
begin
b1:=b1+1;
b2:=b2-60;
end;
str(a1,t1);
str(a2,t2);
и т.д. (так 11 уроков и перемен по 30 строк)
{Сохранение в базу данных под названием zvonok.ini :-) }
val(form1.edit1.text,rb1[h],d);
val(form1.edit2.text,re1[h],d);
val(form1.edit3.text,rb[h,0],d);
val(form1.edit4.text,re[h,0],d);
val(form1.edit5.text,rb[h,1],d);
val(form1.edit6.text,re[h,1],d);
val(form1.edit7.text,rb[h,2],d);
val(form1.edit8.text,re[h,2],d);
val(form1.edit9.text,rb[h,3],d);
val(form1.edit10.text,re[h,3],d);
и так до 11-го урока
Программа для подачи сигналов секретарю, что пора дать звонок на урок или на перемену.
sbs 12.06.2013 21:26 # 0
bormand 12.06.2013 21:30 # +5
P.S. Больше всего, конечно, вырубают классические дельфийские имена - form1, edit1, prnt1, a1, t1.
absolut 12.06.2013 21:51 # 0
bormand 12.06.2013 22:14 # +2
Ну те, кто осилил Си для сибилдера обычно все-таки уже умеют называть переменные поадекватней :) Процентов 80% кода с form1 это все-таки именно делфя. Хотя, конечно, этим изредка отличаются и билдерцы, и шарпеи.
neeedle 13.06.2013 04:43 # 0
А про имена да, помню как-то писал на дельфях программу, для преподавателя бух учета, она сверяла бух. баланс. А ведь там показателей куча. Я конечно все переменные переименовал, в программе, но вот как я их именовал на форме. В общем я когда открыл свой код, мне стало стыдно перед самим собой и я удалил его, что бы никто его больше никогда не нашел и не показывал на меня пальцем. :)
absolut 13.06.2013 06:57 # 0
neeedle 13.06.2013 06:59 # −1
Смысл был в том, что я не хотел копить у себя свои поделки старые.
absolut 13.06.2013 11:26 # 0
defecate-plusplus 13.06.2013 11:49 # +2
но если честно, собирать всё барахло с школьных лет...
это как некоторые свои лекции прошлых семестров бережно подшивают и кладут на полочку
иногда проще выкинуть старые винты, чем тратить время, сортировать и переносить с них то, что уже никогда более не понадобится
absolut 13.06.2013 15:27 # 0
defecate-plusplus 13.06.2013 15:35 # +1
absolut 13.06.2013 15:37 # +4
Int 14.06.2013 10:48 # +1
3.14159265 14.06.2013 12:32 # 0
Плюшкин. Хотя у самого есть такой грешок: жалко выкинуть нельзя оставить.
eth0 13.06.2013 18:29 # +1
В твоей вселенной не изобрели эксель?
Без сарказма.
neeedle 13.06.2013 18:33 # +1
superhackkiller1997 13.06.2013 12:00 # −11
Знатоки, к вам вопрос - почему в этой породии на ЯП надо писать var t1:string;, почему не string t1;? В чём мистический смысл, либо есть какой-то вменяемый вариант?
А так же, в этой породии на ЯП реально нету икриментов и +=, либо автор не осилил? := - почему пиписька, а не нормально равно? Скобок тоже нет?
procedure - это типа чтобы пацаны не путались? Зачем оно?
Vasiliy 13.06.2013 12:24 # +6
>Знатоки, к вам вопрос - почему в этой породии на ЯП надо писать var t1:string;, почему не string t1;? В чём мистический смысл, либо есть какой-то вменяемый вариант?
А какой вариант писать int i; Вместо читаемого var i:integer; которое легко читается переменная i типа integer
Ещё умник расскажи как ты ниослил мануал и не встретил функции inc и dec. Использование которых не вызывает вывих мозга.
:= - почему пиписька, а не нормально равно?
Ты мне расскажи почему присваивание = а равно == Си язык для не уверенных в себе ??
это что бездари не тыкали void и попутно пытались что то вернуть из функции. + к этому судорожно пытались получить результат вызова.
Паскаль это для взрослых людей. Си с крестами ну для не осиляторов.
superhackkiller1997 13.06.2013 12:52 # −6
int - "тип", а тим и есть переменная. Зачем ты дублируешь? Ну да, яп для мужиков - пиши integer вместо int, сверху нафичачиай ещё var, а потом ещё и ':'.
Упоролсячтоли. Почему автор их не юзает? Вывих мозга вызвает что-то только у анскилледа.
Для лаконичность.
Реально - от я тыкал воид и получал результат из функции - я волшебник?
Паскаль для 9-го б, плюсы для 11-а.
Вобще нихрена не ответи, ах да, напиши мне подёргивание на паскале - я поржу хоть.
roman-kashitsyn 13.06.2013 12:56 # +8
Vasiliy 13.06.2013 13:02 # −3
DBdev 13.06.2013 13:20 # +4
3.14159265 13.06.2013 13:29 # +6
i = i++;
И потом день думать как оно работает.
Это к вопросу "реально нету икриментов"
inkanus-gray 13.06.2013 14:03 # +4
type int = integer;
That's all folks!
3.14159265 13.06.2013 13:17 # +7
>икриментов
Нам очень важно Ваше малограмотное мнение.
TarasB 13.06.2013 13:36 # +3
А почему в убогй сишке надо писать string t1 вместо нормального var t1: string?
> А так же, в этой породии на ЯП реально нету икриментов и +=, либо автор не осилил?
Есть.
> := - почему пиписька, а не нормально равно?
Потому что так пишется "присвоить". А просто = - это проверка на равенство. Это в математике так. Но идиоты, придумавшие сишку, пошли своим путём.
А вообще зачёт, и ник со словами "хакер" и "киллер", и год 1997, ох потроллил ты меня)
defecate-plusplus 13.06.2013 13:37 # 0
> b2:=b2-60;
?
TarasB 13.06.2013 13:45 # +1
defecate-plusplus 13.06.2013 13:54 # +1
-:=
TarasB 13.06.2013 14:05 # 0
eth0 13.06.2013 18:33 # 0
inkanus-gray 06.07.2013 10:57 # 0
Кстати, статью про TMT Pascal почему-то выпилили из русской Википедии с формулировкой, что такого компилятора не существует, хотя пруфы были приложены. ВЛАСТИ ПЫТАЮТСЯ ОТ НАС ЧТО-ТО СКРЫТЬ!!!11
P.S. Мне удалось добыть только tmtp390d.zip вот отсюда: http://pascal.sources.ru/tmt/. Сайт же frameworkpascal.com похож на фишинговый: ни одна ссылка с примерами не работает.
inkanus-gray 13.06.2013 14:01 # +3
inkanus-gray 13.06.2013 14:19 # +3
На самом деле не во всех реализациях. Чаще писали всё же x := 2 + 3, как в Паскале. Сразу было видно, что сначала нужно посчитать 2 + 3, а потом засунуть результат в x. В другие языки это не проникло по политическим мотивам.
3.14159265 13.06.2013 14:22 # +1
Все же классическая алгебраическая запись имеет определенный вес. Так что спорно.
guest 23.09.2016 22:37 # +1
inkanus-gray 23.09.2016 22:39 # 0
guest 23.09.2016 22:36 # 0
guest 23.09.2016 22:39 # 0
Да чтобы школьники понимали в какую сторону присваивание
inkanus-gray 13.06.2013 14:00 # +4
Присвоение — асимметричная операция, потому что она сначала вычисляет RValue, а потом заносит результат в LValue. Вполне логично, что знак такой операции в Паскале и в его диалектах выглядит асимметрично.
> почему в этой породии на ЯП надо писать var t1:string;, почему не string t1;?
Слово var намекает, что дальше будет декларативная часть, а не императивная. Это помогает визуально отделять разные части кода. Порядок идентификаторов переменной и её типа — дело вкуса, но по-моему логичнее сначала указать идентификатор, а потом его тип. Это становится очевиднее, если приходится менять тип какой-нибудь переменной, например, чтобы увеличить разрядность, или писать сложные типы.
В Си есть ловушка: int *p1, p2; В этом примере p2 будет иметь тип int, а не int *, как ожидает новичок. В Паскале же p1, p2: ^Integer означает, что обе переменные типа ^Integer.
> procedure - это типа чтобы пацаны не путались?
Да, процедуры избыточны, потому что можно было бы обойтись функциями с типом результата void... Но так естественнее.
Зачем писать явно слова function/procedure? А чтобы не гадать, что это, разбирая нагромождения скобок. В сраной сишке в объявлении переменной для хранения ссылки на функцию, Ктулху глаза сломает. Где там имя переменной, где типы, где аргументы?
TarasB 13.06.2013 14:07 # +2
Впрочем, кулхацкерам 1997 года это нравится, как настоящие кулхацкеры, они сначала заводят новые байты, а потом думают, а нахрена они их завели.
inkanus-gray 13.06.2013 14:28 # 0
absolut 13.06.2013 14:54 # +3
https://ideone.com/1ahG4r
bormand 13.06.2013 15:03 # +1
absolut 13.06.2013 15:33 # +3
только не надо говорить, что это сишко-футуризм
defecate-plusplus 13.06.2013 14:30 # +2
т.е. дельфисты просто так не отличают право от лево, ориентируясь только по двоеточиям?
неплохо бы заиметь тогда и операцию =:
у :=, что бы не говорил Тарас и сколько бы он не называл идиотами людей, благодаря которым он сейчас сидит и строчит свой коммент, есть еще несколько недостатков:
1) двоеточие в английской раскладке приходится набирать с шифтом, и
2) присвоений в коде обычно примерно на порядок больше сравнений, поэтому очень даже логично, что в убогой сишке частое присвоение занимает один знак, а более редкое сравнение - два
> var
слабые набросы у какир-киллера
более существенным минусом является то, что декларации переменных приходится запихивать в начало функции, а не там, где они на самом деле начинают быть нужными
> переменной для хранения ссылки на функцию
result (* name)(arguments)
нереально сложный синтаксис
в дельфе то хоть можно без объявления type сразу объявить переменную - указатель на функцию нужной сигнатуры?
TarasB 13.06.2013 14:38 # −3
это большая проблема для Ритчи, который всю жизнь скрывал страшную болезнь пальцев, которая проявлялась лишь при изобретении им его недоязыка.
> 2) присвоений в коде обычно примерно на порядок больше сравнений, поэтому очень даже логично, что в убогой сишке частое присвоение занимает один знак, а более редкое сравнение - два
Опять же, логика экономии символов при разработке яп вредна.
> более существенным минусом является то, что декларации переменных приходится запихивать в начало функции, а не там, где они на самом деле начинают быть нужными
Не используйте длинные функции. Локальные функции вам помогут.
> нереально сложный синтаксис
Ябсказал, нереально ебанутый.
> в дельфе то хоть можно без объявления type сразу объявить переменную - указатель на функцию нужной сигнатуры?
Нет, слава богу.
defecate-plusplus 13.06.2013 14:45 # +2
о чем можно говорить с человеком, у которого на клавиатуре даже не все клавиши рабочие
но тем не менее - для тебя будет открытием, но твоей йцукен-раскладкой пользуется еще 95% остальных пользователей компьютера, и нажать одну клавишу или нажать три клавиши - две большие разницы
просто ты как всегда начинаешь отрицать тот банальный факт, что паскаль - язык для обучения школьников азам программирования, и всегда им будет
TarasB 13.06.2013 14:55 # 0
defecate-plusplus 13.06.2013 15:00 # +1
от тебя всю жизнь скрывали, что декларация систем уравнений и операция mov - разные вещи
как ты думаешь, почему в математике := именно такое?
возьми учебник по любому матану, посчитай сколько в одной книге ты встретишь = и сколько :=
absolut 13.06.2013 15:35 # 0
defecate-plusplus 13.06.2013 15:44 # +2
уверен, что = там намного больше, чем :=
absolut 13.06.2013 15:48 # +2
defecate-plusplus 13.06.2013 15:50 # 0
inkanus-gray 13.06.2013 15:55 # 0
Либо в другом виде: Последнее даже не присвоение, а вызов функции с параметрами.
В любом случае присвоение отличимо от уравнений, но == никогда не используется. То есть почти как в старом Бейсике:
3.14159265 13.06.2013 15:56 # +3
Хотел я его помянуть
>старом Бейсике
Оно никуда не делось и 2012 студии, но там больше для ололо-LINQшных нужд.
http://msdn.microsoft.com/en-us/library/bb531379.aspx
defecate-plusplus 13.06.2013 16:05 # +2
кто-то сомневался?
я не знаю, может я неясно выразил свою мысль, что уже второй коммент не о том, что я написал
матан и императивные языки программирования (особенно, ассемблер, как ярчайший пример оного) - разные вещи
операция mov в ассемблере - самая используемая, примерно 25-40% всех инструкций - это mov (пруф)
нельзя требовать от императивного языка, где всё строится на mov, того же синтаксиса, как и в матане
в матане как раз нечто, разделяющее две части уравнения, или последовательность преобразований - самое популярное, поэтому очень даже логично, что именно "=" используется в математике для этой семантики
нехер делать неоправданные параллели!
TarasB 13.06.2013 16:08 # 0
Статистика количества ошибок важнее статистики количества использований.
defecate-plusplus 13.06.2013 16:18 # +5
всем, которые росли на бейсике
у тебя такая же аргументация
"меня в институте полгода учили паскалю, когда я написал на сишке хеллоу круел ворлд, мой компьютер распидорасило"
а еще мне привычно ∀, ∃, :, => и всякое такое
вот в питоне есть :, а в паскале вместо него сраный then
inkanus-gray 13.06.2013 16:40 # 0
А разве не так? Если в коде есть повторяющиеся строки, то patch может пропатчить не те строки, которые нужно.
P.S. А двоеточие и без того перегружено, поэтому then очевиднее.
3.14159265 13.06.2013 16:27 # +5
Ага и не позднее как вчера, кое-кто в обсуждении And и And Then предлагал поменять их местами - And, в ущерб логике, потому что And Than используется чаще.
TarasB 13.06.2013 17:50 # 0
В то же время невычисление второго операнда, когда это надо делать - это крайне редкая ситуация и потенциальной опасности не несёт, если только автор не большой любитель побочных эффектов.
inkanus-gray 13.06.2013 18:10 # +4
Давайте тогда уж так писать: А что, первый множитель ноль, значит, второй вычислять не нужно и деления на ноль не будет.
TarasB 13.06.2013 19:19 # +1
bormand 13.06.2013 19:21 # +1
Ты не поверишь, Тарас, но он как раз приводил этот пример, как тот, в котором нужны как раз оба операнда ;)
TarasB 13.06.2013 19:34 # 0
3.14159265 13.06.2013 16:19 # +3
Ведь питон, бейсик, скуль, да и практически всё что _реально_ используется в промышленности использует равно. И даже то что сделано математиками и чаще всего используется для срачей (хацкель).
inkanus-gray 13.06.2013 16:38 # 0
И тут я в очередной раз вспомню Дональда Эрвина Кнута. Да, я в очередной раз баяню: в языке METAFONT знак присвоения :=, а обычный знак равенства используется в уравнениях. Т. е., например, x = y + z означает решить уравнение относительно той переменной, значение которой в настоящий момент не установлено. Т. е. если y = undefined, то оно будет преобразовано в y := x - z. Если же в уравнении есть ещё неопределённые переменные, то оно вместе с предыдущими уравнениями будет решено как система.
Так что неимперативные языки придётся вычеркнуть из списка.
TarasB 13.06.2013 17:51 # +2
bormand 13.06.2013 18:57 # +1
В нормальных кресто-сишкокомпиляторах, если читать крестоворнинги, этой опасности уже давным-давно нет.
inkanus-gray 13.06.2013 19:04 # −3
bormand 13.06.2013 19:07 # +1
ЧТО!? Пруф в студию. Тот же gcc ругается на использование = внутри условий (в контекстах отличных от if(int x = func())) (если так и надо - ворнинг давится путем оборачивания в скобки). И на использование == в контекстах, где результат сравнения не используется (не давится никак, ибо бессмысленная операция).
Так каким же образом оно заставляет меня юзать устаревший йода-стайл?
Йода-стайл юзали как раз тогда, когда компиляторы тупо молчали по поводу сравнений и присваиваний. Да и то только те, кто ссали и перестраховывались. В основном бывшие паскалисты.
3.14159265 13.06.2013 19:33 # 0
true приводится к -1, а false к 0.
Помню использовал хак (a=0)*-42, для эмуляции тернарника, не догадываясь при этом что умножение скушает все такты.
Потому с давних пор юзаю yoda-style.
Оно везде помогает, и в крестах, и в жс, и в жабе когда equals делаешь.
TarasB 13.06.2013 19:36 # 0
По-паскальному это что-то типа
if a=0 then -42 else 0
по-сишному это будет
(a=0, 0)
inkanus-gray 14.06.2013 06:48 # 0
3.14159265 13.06.2013 19:42 # +1
http://ideone.com/gIW912
Хе-хе. Даже в новомодном строготипизированном .NETе они это не пофиксили. По-прежнему неявно приводится.
TarasB 13.06.2013 19:52 # 0
3.14159265 14.06.2013 12:36 # +2
Да он довольно логичен.
Т.к. минимально адресуемая единица байт, а в .NET полагаю сперто с жабы и бул занимает все 4, то хранится оно в числе.
Если применить побитовое отрицание к 0, то бишь false получим все единицы. Так как в бейсике отродясь не было беззнакового уродства, то и получается что это -1.
inkanus-gray 14.06.2013 06:50 # 0
absolut 13.06.2013 14:55 # +1
т.е. паскаль вечен?
inkanus-gray 13.06.2013 14:52 # 0
ЩИТО? http://ideone.com/DkQZKO
В 10-й строке фпц-шная фича, остальное совпадает с Дельфи.
TarasB 13.06.2013 14:54 # 0
inkanus-gray 13.06.2013 15:04 # 0
Конструирование же типа прямо в var, а не в type, обычное явление. Правда, в ТП нельзя было написать ^array[something], для указателя предварительно требовалось описать этот массив в type, но оно, как правило, лишним не было.
inkanus-gray 13.06.2013 15:16 # 0
А то сишники набегут и скажут, что в диалектах Паскаля нельзя объявлять и инициализировать одной строкой.
inkanus-gray 13.06.2013 14:42 # 0
http://govnokod.ru/7746
> двоеточие в английской раскладке приходится набирать с шифтом
А в популярной русской раскладке приходится запятую набирать с шифтом, потому что буржуйская клавиатура на два ряда у́же, чем должна быть. Да даже в английской знаки препинания, кроме запятой, точки, точки с запятой и апострофа почему-то набираются с шифтом. Разве это повод от них отказываться?
> декларации переменных приходится запихивать в начало функции
На самом деле логично, ибо их так легче искать. Если всё дело в экономии памяти, то динамические объекты всё равно выделяются через new/malloc/etc, а не через декларацию.
Если же в локальности, то у Алгола объявлять переменные можно было в начале любых операторных скобок. Сразу было понятно, какова область видимости у переменных. Жаль, что это не было унаследовано другими языками...
А вообще же функции на несколько экранов не нужны, поэтому ограничение локальности областью, меньшей, чем функция, обычно не требуется.
> result (* name)(arguments)
А теперь представим себе, что функция должна возвращать указатель на функцию.
defecate-plusplus 13.06.2013 14:50 # +2
в сишке из коробки
> поэтому ограничение локальности областью, меньшей, чем функция, обычно не требуется
когда я пишу код, я не хочу возвращать курсор на строки выше, это вообще неудобно
я его пишу нередко начисто, меняю строки энтером, а не стрелками вверх-вниз-вверх-вниз, он хорошо читаем, в т.ч. из-за локальности переменных
но хорошо, я приму аргумент "ну так же школьникам будет понятней - это тип, это декларации, а это императивный код, нарисуйте блок-схему, звонок для учителя"
inkanus-gray 13.06.2013 14:59 # 0
Но сишка позволяет писать нечитаемое говно типа такого:
defecate-plusplus 13.06.2013 15:04 # +2
ср. с разделом деклараций в паскале
насчет операторных скобок - работало даже в C89 (более ранние версии я тупо не застал и их камней не знаю)
больше всего в сишке выбешивало то, что для классического for (...) надо заводить i, j... в ближайшем начале блока - и если меня это в сишке выбешивало, в паскале я бы вообще познал дзен
bormand 13.06.2013 15:05 # +2
А паскаль позволяет весь код написать между главных begin и end, не прибегая к функциям. Значит паскаль говно.
inkanus-gray 13.06.2013 15:10 # 0
anonimb84a2f6fd141 13.06.2013 20:22 # 0
>А в популярной русской раскладке приходится запятую набирать с шифтом, потому что буржуйская клавиатура на два ряда у́же, чем должна быть.
Ты немецкой не видел. Там все скобки с AltGr, волосы и крышка набираются только по 2, капс лок действует и на цифры.
superhackkiller1997 13.06.2013 22:57 # −4
Ну да, я настолько идиот, что не догадаюсь сам, что это декларативная часть, да даже если не догадасю - мне это ничего не даст.
Это не дело вкуса, а дела анскилледа. Я знаю сам где и что, а лишнии хрени мне не упёрлись - с такими аргументами только в школотрон.
Мне похрен на твоего ущербечка. Я никогда не путал int * p1, * p2; Если тв настолько анскиллед - typedef int * INTEGER_PTR_T; - тебе в помощь.
Знаешь чем Си хорош? Тем, что он настолько крут, что может эмулировать любую блажь анскилледа, но вы его не знаете - поэтому и несёте такую херню.
Естественнее - да, паскалисты любят писать 70% синтаксиса и 30% кода.
Зафигачь мне это на паскале - я поржу хоть:
roman-kashitsyn 13.06.2013 23:04 # +2
defecate-plusplus 13.06.2013 23:13 # +4
superhackkiller1997 13.06.2013 23:16 # −8
defecate-plusplus 13.06.2013 23:21 # +6
superhackkiller1997 13.06.2013 23:24 # −8
На мальдивах, максимум горячая путёвка в турцию. Примия. Меня аргументы породии на людей не интересуют.
defecate-plusplus 13.06.2013 23:25 # +1
откуда ты такой взялся, мальчик?
2013 - 1997 = 16
superhackkiller1997 13.06.2013 23:28 # −7
Т.е. ты признал, что ты зафейлился на 16летнем детёнке?
defecate-plusplus 13.06.2013 23:33 # +2
superhackkiller1997 13.06.2013 23:39 # −7
Если ты обычный плюсовой анскильный говнарь, то нахрен ты своим недопонимаем лезешь на сишку?
Запомни анскильность - в это мире нет никаких объектов, никаких констант. Они не имеют смысла, они имеют смысл лишь для вас - тотальных анскильностей, которые не могут следить за кодом.
А теперь, анскилябра, я жду от тебя разбора на тему "на что в сишке влияет const".
defecate-plusplus 13.06.2013 23:45 # +4
где хранится твой char * hukkir = "so gay"? что случится, если ++*hukkir?
superhackkiller1997 14.06.2013 00:07 # −5
Где ты у меня видишь char * hukkir = "so gay"? Что случится, если ты анскильность осилишь [].
И да, причем тут конст - если ты не понимаешь особенностей "" - ты ущербан. Я жду объяснений на что влияет в сишке const, пока ты только глубже загнал себя в лужу.
defecate-plusplus 14.06.2013 00:45 # +7
почитал про .rodata уже? char * loh = "" выдает в тебе человека с 0 опытом, в программе техникума паскаль прошли, сишку проходят, до крестов доберутся через год
как раз из-за таких красноглазых уебанов при подключении говна мамонта редко, но метко приходится делать const_cast там, где прыщавый ублюдок пожалел const - ну он же не меняет аргумент в своей говнофункции, просто поверьте! что такое контракт? зачем нужна типизация? зачем, лучше лишний раз всем доказать, что сишка типизирована мягче, чем воскресный понос
просто заигнорим ворнинги, да и преподу насрать
ты не переживай, на сишке я пишу поболе твоего, что такое константный сегмент на флеше в девайсе в поле отлично знаю, а вот такие кретины как ты только позорят нишевый язык своими кривыми ручонками
superhackkiller1997 14.06.2013 01:21 # −6
Причем тут твоя .rodata, анскильная заедушная анскилябра. Если функция по семанике должна изменять твою строку, только ущербан типа тебя передаст в неё "", а вменяемый человек заюзает char[]. Но куда таебе.
>как раз из-за таких красноглазых уебанов при подключении говна мамонта редко, но метко приходится делать const_cast там, где прыщавый ублюдок пожалел const - ну он же не меняет аргумент в своей говнофункции, просто поверьте! что такое контракт? зачем нужна типизация? зачем, лучше лишний раз всем доказать, что сишка типизирована мягче, чем воскресный понос
Это выдаёт в тебе животное, которое не знает семантики функций, которые юзает. Вас, упоротых животных, стало слишком много в моём мире.
>просто заигнорим ворнинги, да и преподу насрать
Какие ворнинги? Удиви меня, анскилябра.
>ты не переживай, на сишке я пишу поболе твоего, что такое константный сегмент на флеше в девайсе в поле отлично знаю, а вот такие кретины как ты только позорят нишевый язык своими кривыми ручонками
А причем тут константная память и const, животное? То, что ты МКашный говнарь, который продался в анольное рабство С++ интерпрайза и ваяешь гуйню за еду - я знаю. Мне это не интересно.
В отличии от тебя, животного, я знаю семантику своих функций и знаю что и почему я туда передаю.
Ты животное, которое нихрена о сишке не знает, а максимум, что ты осилил - это 1-2курса+говняканье на какой-нибудь аврке в маздайке. Кто делал что-то до аврки не будут такими животными.
Дак вот, ты либо валяй что-то по существу, либо не неси херню. Меня твои аргументы "я ущербан, я пишу в ro и мне нужен для того, чтобы я туда не писал конст, чтобы конпелятор мне говорил - я же ущербан, я не могу запомнить". Да, мне твои аргументы очень интересны.
defecate-plusplus 14.06.2013 07:49 # +7
заявит контракт на получение неконстантной строки там, где достаточно константной
это выдает в тебе школьника, не имеющего никакой ответственности за свой говнокод
"никто кроме меня не пользуется моим дерьмом, да и всем насрать, если лаба упадет, даже мне, поэтому ворнинги мне не нужны, они отвлекают от зохвата мира и онанизма"
> какие ворнинги
видишь, ты даже "свой" инструмент толком не знаешь, сразу видно осилятора, собирающего свое одноразовое однофайловое говно без ключей прямиком в a.out
-Wwrite-strings, ублюдок
> гуйню
телл ми моар ;)
> своих функций
я это уже выше отписал - твои функции никому кроме тебя нахуй не всрались, можешь развлекаться дальше, только к взрослым не лезь
superhackkiller1997 14.06.2013 11:17 # −4
> видишь, ты даже "свой" инструмент толком не знаешь, сразу видно осилятора, собирающего свое одноразовое однофайловое говно без ключей прямиком в a.out
Ты это к чему, ущербан? Причем тут твой ворнинг? По твоей ущербанской логике я должен кастит что-то на конст? В чём смысл?
> телл ми моар ;)
От как я в точку про гуйню.
> я это уже выше отписал - твои функции никому кроме тебя нахуй не всрались, можешь развлекаться дальше, только к взрослым не лезь
Очередная анскильная обезъянка со стадом преданных макакёночек-минусяторов. Тотальна слилась на консте, rodata, так и не сказала какая семантика у const в сишке. Детсад.
defecate-plusplus 14.06.2013 12:09 # +6
зачем кастить, школьник? сразу объяви корректный тип
char * foo = "const literal"; - это уже сто лет в обед как deprecated
верно - char const * foo = "const literal";
6.4.5/4
The same considerations apply to each element of the sequence in a string literal as if it were in an integer character constant (for a character or UTF−8 string literal) or a wide character constant (for a wide string literal)
тут и далее в п.6 четко сказано, что "..." - это array of const characters - т.е. char const [N] - если вдруг для тебя это секрет
/7
If the program attempts to modify such an array, the behavior is undefined.
на еще - к вопросу зачем нужен const
6.7.3/6
If an attempt is made to modify an object defined with a const-qualified type through use of an lvalue with non-const-qualified type, the behavior is undefined.
The implementation may place a const object that is not volatile in a read-only region of storage. Moreover, the implementation need not allocate storage for such an object if its address is never used.
если бы ты на самом деле пользовался gcc, а не пиздел об этом фальшивым голоском, то знал бы, что однажды в 4.х они запилили эту проверку, сделав её неотключаемой, чем вызвали тонны жопного жжения таких же каккиров как ты, которым на const насрать
в итоге, мало того, что гццшники вывели этот ворнинг в настройки, так еще и в -Wall он не включен - потому что школьные убер-гентушники вообще не в состоянии что-либо пропатчить или понять, какого хуя это происходит в их жизни
они только бездумно запускают emerge, а потом плачутся мамке в передник, что их любимое дерьмо теперь невозбранно срёт непонятными ворнингами!!11одинодин
defecate-plusplus 14.06.2013 12:09 # +3
и только ты, нихуя не разобравшись в предмете, до сих пор гадишь под себя
каждый твой ответ это фейл школьника
я, конечно, понимаю, что егэ теперь это галочки расставить, а не сочинение написать, но иди почитай уже что-нибудь, кроме двача, расширь свой лексикон, кем ты вырастешь?
superhackkiller1997 14.06.2013 12:48 # −4
Ну да, С++ петушки они такие.
defecate-plusplus 14.06.2013 12:56 # +4
http://bit.ly/16lSsdw
что я вижу? char const * в аргументе??
и снова слив, ну как так можно, ты бы хоть проверял свой текст перед отправкой, а то как всегда всё пиздишь и пиздишь
superhackkiller1997 14.06.2013 14:56 # −7
А так да, ущербаном это не ведомо.
superhackkiller1997 14.06.2013 12:44 # −5
libc обязана быть по стандарту, вернее все сигнатуры.
Петушарня из С++ мне не нужна.
Патамучто нормальный человек инак понимает, что есть "str" и где он лежит по дефолту. Ему не нужен петушарский конст.
Да, да, я знаю, маздайский питушок.
defecate-plusplus 14.06.2013 12:49 # +5
ISO/IEC 9899:2011
не переживай так, первое сентября еще далеко
superhackkiller1997 14.06.2013 14:58 # −6
defecate-plusplus 14.06.2013 15:00 # +3
мыши кололись и плакали, но продолжали жрать кактус
успокойся уже, все всё поняли давно, тебе уже ничего не исправить
superhackkiller1997 14.06.2013 15:20 # −4
roman-kashitsyn 14.06.2013 15:02 # +3
Чтож тогда Линус sparse запилил? Или Линус перестал быть вменяемым сишником?
LispGovno 15.06.2013 14:08 # +1
Он решил написать свой статический анализатор? Но зачем?
roman-kashitsyn 15.06.2013 22:55 # +1
Он не решил, он давно уже написал.
> Но зачем
Проверять kernel-specific баги.
3.14159265 14.06.2013 13:05 # +6
Тут даже не точка зрения. Твои посты настолько затхлы, полны тавтологий и стилистически убоги, что рука рефлексивно тянется к минусу.
Словарный запас невероятно скуден, словно мозг писавшего не больше оного у питекантропа.
Abbath 16.06.2013 20:23 # 0
3.14159265 14.06.2013 13:08 # +3
>Вас, упоротых животных
>А причем тут константная память и const, животное?
>В отличии от тебя, животного
>Ты животное
>не будут такими животными.
>Запомни анскильность
>Анскильность ходячая,
>Если ты обычный плюсовой анскильный говнарь
>Запомни анскильность
>Последние петушиные стандарт
>питушарни из С++
>Петушарня из С++
>маздайский питушок.
>не нужен петушарский конст.
>маздайский питушок.
Любой мало-мальски грамотный программист знает о принципе DRY.
roman-kashitsyn 13.06.2013 23:41 # +4
Not sure if a fat troll or just a school hero...
superhackkiller1997 13.06.2013 23:44 # −6
Я жду, жалкая анскилябра-минусятор. Хотя я не дождусь - это не ведомо заедушных говнорям.
roman-kashitsyn 13.06.2013 23:52 # +3
superhackkiller1997 14.06.2013 00:11 # −6
Нету гнушных проектов - есть говнокод, который написали до гцц(всякие кореутился и прочее), а есть код, который изабилует гццизмами. Любой вменяемый код изобилует гццизмами.
Компилируется он благодаря ифдефам чисто ради поржать.
superhackkiller1997 14.06.2013 00:20 # −6
Зачем мне другой конпелятор? Объясни - форфан? Мб мне и c99 не юзать, ибо 99% конпеляторов его не могут? Я знавал таких днищ.
roman-kashitsyn 14.06.2013 00:33 # +4
> он полностью настраиваемый
Без пруфов это всё голый школьный трёп. Ты лично проводил тесты производительности и потребления памяти компиляторов на единицах компиляции различного уровня сложности? Ты лично анализировал объектный код, генерируемый компиляторами на различных уровнях оптимизации со всевозможными комбинациями опций?
Ты пробовал изменить компилятор, добавить в него новые возможности, статические проверки? Или, быть может, у тебя легко получилось встроить его в интегрированную среду разработки в качестве сервиса компиляции?
Подозреваю, что ответы на все вопросы - нет.
superhackkiller1997 14.06.2013 00:43 # −7
> Ты лично проводил тесты производительности и потребления памяти компиляторов на единицах компиляции различного уровня сложности?
Если ты про скорость конпеляции и потреблении памяти - это для Си не принципиально, а на плюсы я клал.
Если ты про качество гинерируемого кода, то я гентушнег с дохренуа летним стажем, и когда ты под стол пешком ходил я юзал все вменяемые конпеляторы и бенчил код.
> Ты лично анализировал объектный код, генерируемый компиляторами на различных уровнях оптимизации со всевозможными комбинациями опций?
Анскильность тотальная, я пишу на Си и я всегда должен знать что конпелятор гинерит из моего кода. Покачто gcc самый вменяемый.
> Ты пробовал изменить компилятор, добавить в него новые возможности, статические проверки?
Какие нахрен статические проверки - я нааборот их с радостью выпилю.
> Или, быть может, у тебя легко получилось встроить его в интегрированную среду разработки в качестве сервиса компиляции?
Какая среда - какой сервис. Ущербан анскильный, что ты несёшь. Как меня одалели животные, которые нихрена не знают. Твоя идеешичка контактирует с системой сборки, которая контактирует с конпелятором.
Пока такие ущербаны как ты населяют мой мир - мне хренова. Эти животные нихрена не знают, нихрена не видели, но они спорят. Эти животные спорят. И будут спорить.
Твой удел ваять вебгейню на жаве, не лезь пожалуйста в те дебри, котрые для тебя недоступны по причине тотальной анскильности и тотального мозгаотсутвия.
guest 14.06.2013 00:50 # +1
roman-kashitsyn 14.06.2013 05:53 # +6
> я пишу на Си и я всегда должен знать
В общем, ни цифр, ни пруфов, доказывающих твои громкия заявления. Только рассуждения о себе любимом. Nuff said.
superhackkiller1997 14.06.2013 11:23 # −6
Какие тебе пруфы? Не былбы ты животным анскильным - ты бы говорил вменяемо, а пока ты жалкая( тут все такие же) балаболка, которая работает за плюсики.
Даже загуглить нормально не смог.
govnomonad 14.06.2013 17:00 # +4
крутой программист-линускоид? В каких проектах участвовал?
>и когда ты под стол пешком ходил я юзал все вменяемые конпеляторы и бенчил код.
Результаты в студию.
И раз тебе сейчас заняться нечем сравни нынешние gcc и clang
запомни раз и навсегда: не делай ту работу, которую можешь поручить компилятору. Проверка типов и констанстности входит в его обязанности
superhackkiller1997 15.06.2013 12:40 # −2
Питушкам не понять.
>Результаты в студию.
Я питушок привёл тебе пример. gcc наровне с icc, кодоген и умность(у icc есть ущербанская умность, которая никому не упёрлась) у обоих примерно на одном уровне - icc лучше понимает код всяких питушков с породией на числодробилку. У гцц лучше рапределение инструкци, он лучше раскидывает те же интринсики. У гцц есть поцанские билдины. gcc для сишки гинерит почти идеальный код в 80% случаев.
>И раз тебе сейчас заняться нечем сравни нынешние gcc и clang
Питушрня сливает гцц по всем параметрам и мне не интересна.
>запомни раз и навсегда: не делай ту работу, которую можешь поручить компилятору. Проверка типов и констанстности входит в его обязанности
Питух. Мне не нужна проверка типов, ибо я не плюсовой ушлёп, котоый неумеет следить за типами.
В сишке const ничего не значит, кроме бесполезной проверки, которая мне не нужна, ибо профита от неё нет.
neeedle 14.06.2013 08:01 # +1
Причем именно с двачей, нульчаном тут даже и не пахнет.
bormand 14.06.2013 08:04 # 0
Да тут полно людей с двача ;) И большинство из них вполне адекватные сЭры, не то, что эта истекающая жиром голубая коняшка.
neeedle 14.06.2013 08:06 # 0
3.14159265 14.06.2013 12:49 # +3
Заметьте с двача, нульчана, откуда угодно: геймдева, хабра, но не сосача.
neeedle 14.06.2013 13:26 # +1
3.14159265 14.06.2013 13:29 # 0
neeedle 14.06.2013 13:31 # +3
Не, лиспговно не такой, он классный.
А этот уныл.
roman-kashitsyn 14.06.2013 13:33 # +4
> классный
comment#180856:2:28 Division by zero
3.14159265 14.06.2013 13:35 # +1
Это он просто посидел годик-другой на гкоде, изначально было такое же: вайпы, боты, уныльство, сосач.
neeedle 14.06.2013 13:42 # 0
Вот кто-то уже русский благодаря борманду подучил.
bormand 14.06.2013 13:49 # +1
Борманд общается со знаками препинания только на этой борде, при этом пытаясь не забыть как это делается.
roman-kashitsyn 13.06.2013 23:32 # +4
Ну и грамматические ошибки выглядят уж слишком стилистическими...
Хотя школоло, прогуливающее университетские курсы, тоже исключать нельзя. Эх, молодежь пошла... Я полгода перед поступлением по 2-3 часа в день математические упражнения долбил, а не на форумах зависал.
superhackkiller1997 13.06.2013 23:42 # −7
Я похож на ущербана, который будет учиться в вузе? А ну да, ты долбил, долбил и стал заедушной плюсовой обезъянкой, каторая даже нормальный конпелятор не видела. Ты понимаешь, что ты делишь на ноль?
Яб понимаю - ты бы понимал что-то в этой жизни, но я не вижу этого и на фоне этого твои выхлопы про "смотри как надо" выглядят так сишно, что попец болит.
guest 13.06.2013 23:48 # −2
superhackkiller1997 14.06.2013 00:14 # −5
guest 13.06.2013 23:50 # −6
roman-kashitsyn 14.06.2013 00:02 # +6
guest 14.06.2013 00:50 # −7
Vasiliy 14.06.2013 11:36 # +3
roman-kashitsyn 14.06.2013 12:01 # +2
neeedle 14.06.2013 12:49 # 0
bormand 14.06.2013 12:55 # +3
inkanus-gray 14.06.2013 12:59 # +3
neeedle 14.06.2013 13:01 # 0
>>Ты совсем попутал, петушок?
Да ну?
inkanus-gray 14.06.2013 13:08 # +5
Cockerel-sensitive sunglasses.
neeedle 14.06.2013 13:20 # 0
Ыыы
inkanus-gray 14.06.2013 13:25 # +1
Это же говнокод.
neeedle 14.06.2013 13:32 # 0
bormand 14.06.2013 13:24 # 0
govnomonad 14.06.2013 17:07 # +1
roman-kashitsyn 14.06.2013 17:09 # 0
superhackkiller1997 13.06.2013 23:13 # −5
icc не особо лучше, а в 50% случаях хуже на вменяемом коде. Про msvs я вооще молчу - там тотальный щитстизм.
Удиви меня, какие есть ещё нормальные конпеляторы? Причем не забывай, что на гцц я могу собрать подовсём, а со своей маздайкой ты будешь сам обниматься.
defecate-plusplus 13.06.2013 23:18 # +3
много суеты
шланг забыл
всегда знал, что роман - фанат мсвс
superhackkiller1997 13.06.2013 23:21 # −6
Шланг говно, а к сишке отношение имеет такое же, как и ты.
Ну да, жизнь заедушных рабов тяжка. Я юзаю говно, ан е конпелятор и доказываю всем, что гццизмы(которые есть во всех нормальных конпеляторах) - говно.
А уж msvs и сишка, они хоть c99 осилили? Нет, ну что же? Я должен юзать говно, которое за 15лет не осилило c99?
superhackkiller1997 14.06.2013 01:23 # −6
superhackkiller1997 14.06.2013 00:45 # −6
bormand 14.06.2013 07:22 # +8
Вот такой код уже распидорасит с сегфолтом из-за того что вызов первого printf'а похерит "неиспользуемый" кусок стека:
superhackkiller1997 14.06.2013 11:28 # −5
Петушок, в твоём курятнике кроме 486-го о чем-то слышали? Мне похрен на курятники анскильных петушков. На нормальном call abi это будет работать хоть мильён фринтфов туда засунь.
Vasiliy 14.06.2013 11:38 # +2
superhackkiller1997 14.06.2013 11:51 # −4
Я понимаю, что тут не модно думать, а сишки из вас знает полтора человека, но всё же - не играйте на публику. Будь человеком, причем не в глазах этих макак, а в глазах людей. Человек в данном контексте это тот, кто осилил сишку на уровне, чтобы мочь спорить.
Vasiliy 14.06.2013 12:19 # +3
Про паскаль ака Дельфи ты уже слил. Ну судя по постам и Си с крестами сливаешь чего бычишся ? Ну видно же что юниор. У нас в студии таких кочергой по ебалу бьют. ;) иди иди учи уроки не чего с взрослыми дядьками спорить не до рос ты еще.
superhackkiller1997 14.06.2013 12:40 # −3
Vasiliy 14.06.2013 12:56 # 0
http://govnokod.ru/13162#comment180508
или ты без фразы слив засчитан не понимешь где слился ? Так вот персонально для хакакилера гомосека. Слив засчитан. Можешь быть свободен.
superhackkiller1997 14.06.2013 13:21 # −2
TarasB 14.06.2013 11:47 # +3
superhackkiller1997 14.06.2013 11:59 # −3
TarasB 14.06.2013 12:06 # +1
superhackkiller1997 14.06.2013 12:39 # −3
TarasB 14.06.2013 12:41 # +3
superhackkiller1997 14.06.2013 12:50 # −3
А то, что вы петушки придумали - ваша фантазия.
TarasB 14.06.2013 12:51 # +2
superhackkiller1997 14.06.2013 14:02 # −2
Это можно использовать как синтаксический сахар, чтобы писать меньше кода и было красивше. А когда гцц научится оптимизировать это - они будет ещё и так же быстро, а писать кода в 3раза меньше.
inkanus-gray 14.06.2013 14:08 # +5
А когда у бабушки вырастет пиписька, то она станет дедушкой.
superhackkiller1997 14.06.2013 15:01 # −2
Я же там писал, петушок, что мой вариант короче, красивее и проще в написании. У варианта с 10-ю разными функциями есть проблема - надо пилить 10разных функций, но работаето н быстрее.
Поэтому ущербан ты написал тотальную херню, а макаки заплюсовали, даже не понимая того, о чём я вообще написал.
inkanus-gray 14.06.2013 15:03 # 0
superhackkiller1997 14.06.2013 15:18 # −4
Если ты питушарня не понимаешь то, о чём пишут пацаны - не неси херню. В этом суть вас, питушков, ибо вы увидели коммент bormand - и несёте херню даже не осилив понять о чём он, а bormand ваш написал херню. Вот такие вот дила. Только он это понял, и больше не писал, а вы питушки нет.
bormand 14.06.2013 15:33 # +3
Эту функцию можно вызывать откуда угодно, и сколько угодно раз*.
* Если компилятор умудрится заинлайнить say для каждой из констант.
superhackkiller1997 15.06.2013 01:21 # −4
bormand 14.06.2013 12:59 # +2
superhackkiller1997 14.06.2013 13:25 # −3
bormand 14.06.2013 11:49 # +3
> Петушок, в твоём курятнике кроме 486-го о чем-то слышали?
Так расскажи нам, о великий знаток соглашений о вызове, где должен лежать сгенеренный трамплин, чтобы его адрес можно было использовать после возврата из функции, в которой он был создан, а не до затирания куска стека, в котором ему посчастливилось остаться, и при этом не создавалась утечка памяти. Слив засчитан, детка?
superhackkiller1997 14.06.2013 12:12 # −5
Причем тут то, что он создал, петушок. Как и все петушки ты начал кукарекать про то, чего нет в моём коде, ибо про то, что есть в коде ты уже прокукарекался.
Если тебе, питушок, понадобится ещё раз функция, возвращемая биндом - заюзай бинд. Зачем биндить и не юзать сразу? Объясни свою логику, питушок.
Слился на том, о чём начал балаболить. Съехал на другю тему, которую я даже не поднимал. Пришел с этой темой в тупик. Слив засчитал, питушок?
defecate-plusplus 14.06.2013 12:18 # +4
ха-ха, вот ведь долбоёб
уходи, сколько можно позориться
superhackkiller1997 14.06.2013 12:34 # −5
Животное, зачем мне сохранять бинд, если мне проще его забиндить уже на месте? Для питушка поясню - бинд в моей семантики - это аля самомодифицирующая функция.
И да, питушок, ты либо отвечай на весь коммент нормально, либо не смеши мои тапки. Я понимаю - это для тебя сложно, но хоть попытайся.
TarasB 14.06.2013 12:38 # +3
superhackkiller1997 14.06.2013 13:39 # −3
Оптимизации тут нету, ибо гцц не асилил. Возможнно даже можно найти способ подсказать ему.
inkanus-gray 14.06.2013 13:43 # +1
superhackkiller1997 14.06.2013 13:59 # −1
Скобок столько же, непонятно вообще - что это, больше похоже на say_ptr_t p = f;
А в сишке всё понятно - тип, скобка - это экран, указатель - это и есть указатель. Имя - этоимя указателя, последняя скобка - это скобка как в твоей функции. Зачем тут писать именя аргументов?
inkanus-gray 14.06.2013 14:13 # 0
Со всем остальным не соглашусь. В Си сходу не видно, где имя определяемого типа. В Паскале say_ptr_t слева, сразу видно, что его определяем, а в Си — где-то посередине.
Почему знак равенства, а не присвоения? А потому что это определение навечно. Мы не можем динамически сменить тип. Оператор же := предназначен для изменения значения в текущий момент.
P.S. много лишних скобок, да и typedef длиннее, чем type.
superhackkiller1997 14.06.2013 14:36 # −1
var str:string; - где-то посередине, а в си string str; - нормально права. Аргимент очередно говно.
А с чего ты к типу что-то там присваиваешь? Зачем? Как можно что-то к типу присвоить.
В гнуси было что-то, аля typedef p = f;
Щас что-то аля:
Тайпдеф длинне type на 3 символа, а процедуре 9 лишних символов - о5 аргументы говно.
Паскаль сливает по всем параметрам.
inkanus-gray 14.06.2013 14:43 # +1
Не посередине, ибо var — это заголовок блока, а не определения:
> Как можно что-то к типу присвоить.
А я и не присваиваю, потому и = вместо :=
> Тайпдеф длинне type на 3 символа, а процедуре 9 лишних символов - о5 аргументы говно.
Это было упомянуто ради шутки, потому что кто-то жаловался, что integer длиннее, чем int.
superhackkiller1997 14.06.2013 15:07 # −4
void
(*say_ptr_t) (char *);
>А я и не присваиваю, потому и = вместо :=
А что ты делаешь? Сравниваешь?
> Это было упомянуто ради шутки, потому что кто-то жаловался, что integer длиннее, чем int.
Моя жалоба была к месту, а ты ущербан тупорылый. Если я жаловался - моё выражение БЫЛО КОРОЧЕ. Твоё же длинне.
Вобщем ты несёшь херню какую-то, на вопросы не отвечаешь, игноришь половину моего коммента - слился как детё.
inkanus-gray 14.06.2013 15:13 # 0
Жду примера, где после одного воида будут следовать несколько определений.
> Сравниваешь?
Жаль, но третьего знака, кроме = и :=, нет. Пришлось использовать имеющийся =, потому что перепутать его со сравнением в данном контексте нельзя.
> Твоё же длинне.
Экономия на спичках.
Слился тут ты. Моя программа работает даже после модификации: многократного использования функции, использования функции далеко после бинда и т. п. Твоя программа после таких модификаций упадёт. Условием спора была работа с указателями на функции, если я правильно понял.
superhackkiller1997 14.06.2013 15:25 # −3
* ptr, * ptr2, * ptr3;
Мордой питушка.
> Жаль, но третьего знака, кроме = и :=, нет. Пришлось использовать имеющийся =, потому что перепутать его со сравнением в данном контексте нельзя.
Т.е. ты, питушок, сам не знаешь что делает твой знак '='? Занятно.
>Экономия на спичках.
А то я вижу, что строка в 2раза длиннее.
> Слился тут ты. Моя программа работает даже после модификации: многократного использования функции, использования функции далеко после бинда и т. п. Твоя программа после таких модификаций упадёт. Условием спора была работа с указателями на функции, если я правильно понял.
Моя тоже будет работать, питушок. Только моя в 10раз короче, питушок.
inkanus-gray 14.06.2013 16:23 # 0
* ptr, * ptr2, * ptr3;
А теперь повтори то же самое, но не для тупых указателей на воид, а для указателей на функции.
> Т.е. ты, питушок, сам не знаешь что делает твой знак '='?
Откуда это следует? Я функции этого знака объяснил, но ты читаешь комментарии только наполовину.
defecate-plusplus 14.06.2013 16:51 # +5
void (*f1)(...), (*f2)(...) ...;
это, кстати, на говнокоде однажды обсуждалось в контексте того, что можно в одной ебанутой конструкции объявить переменную, указатель на нее, указатель на функцию и даже задекларировать саму функцию
нашёл: /12064
inkanus-gray 14.06.2013 16:55 # 0
А в Паскале так можно: var p1, p2: procedure(x: integer);
3.14159265 17.08.2021 05:55 # +2
roman-kashitsyn 14.06.2013 14:56 # +2
superhackkiller1997 14.06.2013 15:16 # −3
Как всегда у любого ущербана получается смесь паскаля и Си. Лучше я буду юзать жабу, чем говно. Хотя та тоже смесь паскаля и Си.
3.14159265 14.06.2013 16:33 # +4
>та тоже смесь паскаля и Си.
Дело говоришь! А java script - это та же уродская жаба только нетипизированная, и для web. Существуют всего джва языка - пасцаль - говно и сци - идеал, остальные - их смеси.
inkanus-gray 14.06.2013 16:40 # +3
roman-kashitsyn 14.06.2013 16:43 # +1
bormand 14.06.2013 17:07 # 0
А божественному хацкилю на всех пофиг.
Vasiliy 14.06.2013 17:47 # 0
3.14159265 14.06.2013 18:45 # +3
Императивные Бейсик, Питон и всякое скриптовое произошло от фортрана.
inkanus-gray 14.06.2013 23:19 # 0
govnomonad 14.06.2013 17:19 # +4
>и нагромождение скобок
>Что проще запомнить и разобрать?
inkanus-gray 14.06.2013 17:48 # 0
superhackkiller1997 15.06.2013 01:24 # −1
Вот тебе конструкция, питушок, которая уделает любую, питушок.
inkanus-gray 15.06.2013 08:33 # −1
inkanus-gray 15.06.2013 09:09 # +1
typeof из имени переменной получает её тип? Ну так в Дельфи даже RTTI есть, только это приводит к лишней обвеске кода. А кому может понадобиться в трезвом уме и в здравой памяти объявлять переменную «по образцу», не зная её типа, ума не приложу.
Странный ты человек. Массивы с ненулевой базой для тебя ненормально, мол, сами базу вычитайте, а typeof нормально.
bormand 15.06.2013 09:48 # +1
Тип переменной и так известен по правой части присваивания, зачем писать его еще раз слева? В сишке это конечно не так актуально, т.к. типы там не такие уж и страшные. А вот крестоблядские братья typeof'а - decltype и auto неплохо выручают.
superhackkiller1997 15.06.2013 11:55 # −1
Мне похрен что там есть в твоём языке. Какого типа - какая тебе разница какой тип - тебе надо запилить указатель на функцию - передал её в тайпоф - получил тип.
Тайпоф нужен, а твоя петушрня для неосиляторов нет. Никакого вменяемому человеку не понадобятся индексы не с нуля.
inkanus-gray 15.06.2013 12:04 # 0
Инерция мышления. Штамп, вызванный языками, в которых нет диапазонов.
> Тайпоф нужен.
Получи то, не знаю, что. Пользоваться типом, не видя его декларации, опасно, а иногда и невозможно. Всё равно же потребуется уточнить, какие аргументы передавать в эту функцию, а для этого придётся искать декларацию. Не проще ли оттуда и тип скопировать для ясности?
superhackkiller1997 15.06.2013 12:26 # −2
Глупому питуху говорить мне про инерцию мышления? Питух, если бы мне они были нужны - я бы запилил их, но они мне не нужны.
Я не питух типа тебя - меня мой язык ничем не ограничивает, а то, что мне надо - я запилию.
>Получи то, не знаю, что. Пользоваться типом, не видя его декларации, опасно, а иногда и невозможно. Всё равно же потребуется уточнить, какие аргументы передавать в эту функцию, а для этого придётся искать декларацию. Не проще ли оттуда и тип скопировать для ясности?
Ты что несёшь, питушок. Ты не видешь функцию, которую ты объявил выше на строчку?
Зачем мне что-то уточнать, питух. Я писал функцию к которой я сделал тайпоф - я знаю её аргументы. А если ты их забыл, то над тайпдефом - есть определение твоей функции.
TarasB 15.06.2013 14:39 # +2
> питух питух
А я ТарасБ, приятно познакомиться.
Нет, у тебя именно что инерция мышления, массивы, идущие не с нуля, всё время где-нибудь, да встречаются, просто сишники привыкли в голове делать сдвиги и вычеты и уже не замечают, как делают лишнюю работу.
superhackkiller1997 16.06.2013 05:53 # −3
Только в говнокоде питухов, который не могут нормальное енум написать.
TarasB 16.06.2013 11:54 # +2
Когда у тебя будет побольше практики, кроме полутора примеров говна, не падающего благодаря чуду, то ты сам всё поймёшь.
bormand 15.06.2013 13:25 # +1
Так эти decltype/typeof юзают в основном не в ручном коде, а в макросах/шаблонах, там, где вручную подставлять противно или вообще невозможно.
superhackkiller1997 15.06.2013 01:24 # −2
Это к тебе, питушок, тоже относится.
defecate-plusplus 14.06.2013 12:45 # +3
в твоем случае - из f(user, string) сделать g(string), причем так, чтобы при вызове g(that-string) на самом деле происходил вызов f(bound user, that-string)
вызывать бинд прямо в месте его создания никому не нужно
всем нужно передавать свою функцию со своим набором аргументов (f) туда, где ждут g
и т.к. обычно это нужно для коллбеков, это означает, что забинденный функтор будут вызывать много позже (если вообще будут), чем он был создан
на тебе, просвещайся: http://en.wikipedia.org/wiki/Partial_application
bormand 14.06.2013 12:31 # +2
Ааа, так вот оно че, т.е. ты придумал одноразовый бинд, который надо вызывать сразу же... Ну да, так оно будет работать. Только нахуй кому-то сдался такой бинд? С тем же успехом можно было передать в функцию два аргумента и не ебать мозг.
> Зачем биндить и не юзать сразу
Чтобы поюзать как колбек, например.
> Съехал на другю тему, которую я даже не поднимал.
Ты поднимал тему, что на паскале так нельзя. Ниже Тарас показал как это сделать на делфи 2009 через замыкание. Т.е. слился тут ты.
superhackkiller1997 14.06.2013 12:36 # −5
Это был вброс-пример - он должен был возвращать указатель на функцию по контексту.
>Чтобы поюзать как колбек, например.
Чтобы юзать как калбек - я напишу на свиче, либо тупо пару функций.
bormand 14.06.2013 12:43 # +1
Ну как вброс этот пример просто идеален ;) Но, к сожалению, на практике (не ради вбросов) такой код никому не нужен.
superhackkiller1997 14.06.2013 13:19 # −4
inkanus-gray 14.06.2013 16:24 # +1
bormand 14.06.2013 17:08 # 0
Пример же.
govnomonad 14.06.2013 17:17 # +4
макаки из adobe также полагались на memcpy. И оно работало до обновления glibc.
Поведение компилятора/библиотек может измениться, но оно будет соотвествовать стандарту. Положил МПХ на стандарты - будь готов, что разрабы компилера/библиотек положат МПХ на тебя с твоими лабами
superhackkiller1997 15.06.2013 01:31 # −4
Эта функция работает не потому, что она пологается на что-то она полагается на call abi( которое никто менять не будет) для вызова принтф"а и say стек не юзается - он юзается только для бинд - т.е. констекст бинд - там, где ты её вызвал.
call abi никогда не поменяют - оно соответствует стандарту. Этот код полагается на стандарты, основанн на них. Только он не работает на петушрском 486-м, но это проблемы петушков, ибо 486 давно нет в природе.
neTyx_npoTKHyTbIu 21.11.2019 13:23 # 0
Лямбда не обязана быть кложей.
Вложенные функции так же часто бывают кложами в скриптовых языках, но, конечно, не в твоем примере
XYPO3BO3 21.11.2019 14:34 # +1
Главное свойство лямбды — анонимная функция.
Верно?
Лямбда, но не кложа — анонимная функция, не захватывающая ни одной переменной извне.
Кложа, но не лямбда — обычная вложенная функция (в gcc так можно и в Паскале), захватывающая переменные родителя.
Ничего не напутал?
guest8 21.11.2019 16:13 # −999
inkanus-gray 14.06.2013 07:51 # +1
http://ideone.com/hvsQUc
bormand 14.06.2013 07:58 # +2
P.S. Все-таки настоящих лямбд нет ни в старом паскале ни в сишке. Есть только вложенные функции, которые адекватно пашут только если они чистые (pure), либо если родительский контекст еще жив.
P.P.S. Может быть в последних делфях и сделали настоящие лямбды...
inkanus-gray 14.06.2013 08:12 # +2
bormand 14.06.2013 08:28 # +2
Не ну можно немного побайтоёбить - выделить платформозависимыми средствами RWX сегмент и ложить в него трамплинчики с защелкнутыми значениями переменных, а потом юзать их как адреса функций.
TarasB 14.06.2013 10:07 # 0
bormand 14.06.2013 10:12 # 0
TarasB 14.06.2013 10:17 # +1
bormand 14.06.2013 10:59 # 0
roman-kashitsyn 14.06.2013 11:01 # +1
bormand 14.06.2013 11:05 # 0
roman-kashitsyn 14.06.2013 11:25 # +1
inkanus-gray 14.06.2013 12:02 # 0
TarasB 14.06.2013 12:08 # 0
А вообще я так делал, только проще: моя "лямдба" обращалась к глобальным переменным, предназначенным чисто для неё. Перед подстановкой "лямбды" я менял эти глобальные переменные.
inkanus-gray 14.06.2013 12:11 # +1
А супротив глобальных переменных есть костыль: ООП. Те же «глобальные» переменные, но только спрятаны в классе/объекте.
inkanus-gray 14.06.2013 12:50 # 0
В любом случае байтомагия приведёт к необходимости на ходу менять права доступа к странице и всё равно придётся ограничить код одним потоком.
Итого: под каждый поток придётся заводить массив «глобальных» переменных.
bormand 14.06.2013 13:41 # +1
TLS.
TarasB 14.06.2013 09:42 # +1
bormand 14.06.2013 10:07 # 0
TarasB 14.06.2013 10:19 # 0
superhackkiller1997 14.06.2013 11:46 # −1
На гцц уже столет в обед можно делать на оптимизаторе и на builtin'ах то, что не осилят даже плюсовые шаблоны, причем это компилирует в 100раз быстрее, да и вообще 90% фичей ваших любимых лиспов.
Пока сишные конпеляторы держит анальный ущербанский стандарт, который вменяемо не переписывали уже 20лет, а 90% уб которого уже давно не актуальны, да небыли актуальны никогда.
И да, icc я не навижу за то, что он слишком умный, а профита от него нет. Шланг говно. Назови мне другие конпиляторы? Только не надо мертворожденцев, аля сановские или ещё чего.
Реально в мире для сишки есть один конпелятор и имя ему гцц.
bormand 14.06.2013 11:59 # +2
Ну да, тут всего 3 вызова bind'а с заранее известным аргументом. В теории можно и сгенерить на каждый по функции, и тогда все будет норм. Но в общем случае, когда в аргумент bind'у попадет не литерал, а какая-нибудь переменная, компилятор ниче раскрыть не сможет, и код распидорасит ;)
superhackkiller1997 14.06.2013 12:16 # −2
Гцц по царски умеет выявлят константы, даже хорошенько запрятанные - если ему помочь( т.е. запилить реальный const, а не пародию как сейчас) - можно делать тикие штуки.
Всегда у биндов будет константа, а если будет не константа - я напишу по другому.
Вы нихрена не понимаете, у вас ущербанский универсализм головного мозга.
TarasB 14.06.2013 12:22 # +4
Ага, по 10 раз перепиши руками на все случаи константа/некостанта) А ещё на Дельфи пиздел, что много текста лишнего набивать ахахаха.
roman-kashitsyn 14.06.2013 12:25 # 0
TarasB 14.06.2013 12:27 # 0
superhackkiller1997 14.06.2013 12:30 # −2
Мне не надо переписывать, очередно питушок, который не читает, что я пишу? Я просто напишу switch(), а конпелятор сам мне сгинерит 10функций.
TarasB 14.06.2013 12:34 # +1
http://govnokod.ru/11479
superhackkiller1997 14.06.2013 13:53 # −1
Это будет эквивалентно тому, что ты напишешь функцию отдельно.
Так же, просто say() с константой будет сведено к вызову say() с одним аргументом.
Так же, если бы ты там запилил свич - гцц бы выпилил его и заменил бы на нужную ветку.
Т.е. то, что ты сделал - гцц умеет итак делать для вменяемо написанного кода.
superhackkiller1997 14.06.2013 13:54 # −1
govnomonad 14.06.2013 17:32 # 0
лол, inline для ускорения работы указателя на функцию?
bormand 14.06.2013 17:46 # 0
> return say(tarasB, str);
facepalm.png
Где тут указатель на функцию, govnomonad?
inkanus-gray 14.06.2013 17:49 # +1
bormand 14.06.2013 18:06 # +1
Ну здесь, я так понимаю, указатели автор будет брать на say_*, а не на say. Поэтому inline стоит вполне к месту.
TarasB 14.06.2013 18:10 # 0
bormand 14.06.2013 18:15 # +1
Рекомендует компилятору, по возможности, копипастить тело этой функции в точки вызова. Это если не вдаваться в подробности линковки и указатели на инлайн функции.
superhackkiller1997 15.06.2013 01:39 # −3
С инлайном не линкуют. Указатель от инлайна не берётся. c89 питушки.
bormand 15.06.2013 10:02 # +1
ЧЯНТД?
inkanus-gray 15.06.2013 10:29 # 0
А менее усердные — да, могут оставить, как в этом примере. extern inline — это взаимоисключающие параграфы.
bormand 15.06.2013 10:31 # +1
> extern inline — это взаимоисключающие параграфы
Хм, сходи почитай C99 :)
inkanus-gray 15.06.2013 11:24 # 0
Почитал C99 и C11. Довольно размыто написано и про реализацию inline, и про inline+extern. Ясно только, что inline без extern не создаёт адреса функции.
An inline definition provides an alternative to an external definition, which a translator may use to implement any call to the function in the same translation unit. It is unspecified whether a call to the function uses the inline definition or the external definition.
Из этого следует, что inline+extern фактически для одной функции создаёт два описания, но какое из них будет использовано в конкрентом вызове, решать компилятору. Т. е. если он захочет, то заинлайнит, но в любом случае extern заставляет создавать адрес. Я правильно понял?
superhackkiller1997 15.06.2013 12:22 # −2
Т.е. ты питушок меня минуснул, прочитал станарт - рожей уткнулся и не убрал минус? Так держать питушок.
Ехтерн говорт конпелятору захреначить код функции туда, где ты вызвал этот ехтерн. Питушок захреначил его в test.c - конпелятор в test.c захреначит тело инлайн функции. В мейне его не будет.
В любом случае - есть статик, по которому конпелятор сам решает - нужно ли её тело. Если ты не будешь брать адрес - тела не будет, будешь - тело будет. Не сможет встроить - тело будет и т.п.
superhackkiller1997 15.06.2013 11:39 # −4
Нет, нет никаких менее и более усердных - есть нормальный конпелятор и питушря. На нормальном его линкер отвалится без екстерна.
superhackkiller1997 15.06.2013 11:37 # −4
Что теперь? Ты заюзал кастыль, а не питух напишет статик, а питух не догуглив до него - заюзает кастыль.
И да, питух, она будет не в мэйне, а в тесте.
И ещё питух, не берётся - это значит не берётся и он не берётся. А хак, хоть он и описан в стандарте - это хак.
superhackkiller1997 15.06.2013 01:36 # −4
Никакая линковка тут непричем, жаль выпилили мою тему на лоре - там для вас питушков я всё разжевал.
И да, питушок, это не плюсы, это c99+.
bormand 14.06.2013 12:37 # +5
Все. Теперь я окончательно понял смысл кода и ваш диагноз. Любовь к написанию кода для каждого частного случая, и ненависть к более-менее общим решениям. Если бы вы были контроллерщиком, у которого каждый байт на счету - я бы даже понял причину вашей профессиональной деформации, и согласился бы, что иногда байтоебству и интересным хакам есть место... Но контроллерщиков вы тоже считаете говном... Поэтому, простите, но вы страдаете хуйней.
superhackkiller1997 15.06.2013 07:32 # −4
У меня нет ненависти ни к каким решенияем, а есть ненависть только к говно. Мне похрен насколько универсально твоё решение, если оно говно - оно говно. Даже если ты напишешь частный случай как говно - оно будет говно.
У нормального кода тоже каждый байт насчету, каждый цикл. Петушкам не понять. Переиграл - говно не влезло в l1i, lcc - питушок идёт жрать говно.
Контроллёрщики - это питушки типа вас, которые отстали от мира лет на 20 и спорят с людьми, будучи gnu89 питушками в лучшем случае, а обычно это даже далеко не с89, да и понимание ЯП на уровне 1-го курса.
Вот как питушок, который говнякал на аврке и кроме ифов, функций и интов ничего не юзал, а 80% кода писал копипастой может мне что-то доказывать? Темболее ладно бы этот питушок продолжал говнякать, но он плюсовик. Плюсовик.
Таких "контроллерщиков" я считаю говном, а иных 1 на тысячу этих ущербанов и шанс мне их встретить крайне мал.
Мнение питушков не интересует. Питушок за пределами своего 486-го курятника ничего не видел, а уж осилить с99 - даневжизнь.
И этот питушок пишет, что мой код не работате. Ладно бы этот питушок сказал "на моём говне твой окд не работает"( и то можно сделать, чтобы он заработал), но он сказал "неработает", а остальные питушки его поплюсовали - он даволен.
TarasB 15.06.2013 10:12 # +2
Молодец, а теперь глянь на то, что ты написал
superhackkiller1997 15.06.2013 11:40 # −2
TarasB 15.06.2013 14:41 # 0
Я напишу либо с лямбдами, если реально нужен бинд, либо просто вызовом функции от 2 аргументов.
superhackkiller1997 16.06.2013 05:55 # −2
Нет питушок, ты не напишешь.
TarasB 16.06.2013 11:55 # +1
По контексту нахуй был не нужен указатель на функцию.
superhackkiller1997 16.06.2013 12:09 # −2
Питух? Там было сказанно "указатели на функции в сишке непонятны и вырвиглазны".
TarasB 16.06.2013 12:55 # +1
superhackkiller1997 16.06.2013 13:16 # −2
И да, питух, до того, как передать туда структуру - тебе её надо заполнить. Ты будешь как питух её заполнять? Или менять пару аргументов? А потом в функции разбирать?
Питух.
TarasB 16.06.2013 13:35 # +5
Предъяви бенчмарк, или ты за базар не отвечаешь.
Структура у меня живёт давно, потому что с ней работают ещё дохрена функций, а уж как аргументы подменять, сам придумай.
ТарасБ.
inkanus-gray 24.06.2013 19:53 # 0
inkanus-gray 25.06.2013 10:47 # 0
Таким образом, reference to procedure — это ссылка не на процедуру/функцию, а на экземпляр класса, а в старых Дельфи код будет выглядеть так: http://ideone.com/MHQreD
inkanus-gray 25.06.2013 16:46 # 0
bormand 25.06.2013 17:35 # +1
Ну собственно по этому эта штука и не совместима с обычным указателем на процедуру, а называется reference to procedure, которая, как я понимаю, представляет собой что-то типа std::function или boost::function...
inkanus-gray 24.06.2013 20:14 # 0
Пруф, что работает: http://ideone.com/nNSXTU
inkanus-gray 24.06.2013 20:28 # 0
const вместо var — и всё работает.
superhackkiller1997 14.06.2013 11:28 # −5
TarasB 14.06.2013 11:48 # +2
inkanus-gray 14.06.2013 11:52 # +2
Кроме того, в Си нельзя объявить массив с индексами из заданного диапазона. В Си так нельзя: array[users_t]. Массивы только с целочисленными указателями, всегда начинающимися от нуля, — это стиль Бейсика и Фортрана, а не современных языков.
superhackkiller1997 14.06.2013 11:58 # −4
Видил бы - это гумно не запостил бы. Мне похрен что там в твоей пародии на ЯП, которая ЯП даже не является.
> Кроме того, в Си нельзя объявить массив с индексами из заданного диапазона. В Си так нельзя: array[users_t]. Массивы только с целочисленными указателями, всегда начинающимися от нуля, — это стиль Бейсика и Фортрана, а не современных языков.
А зачем? Из-за петушков, которые не осилил офсеты? Вычти из каждого первый елемент - вот тебе и твой модный стиль, но ты же это не осилишь.
С чего мой язык должен тормазить и быть избыточным, только потому, что какие-то питушки что-то не осилили?
inkanus-gray 14.06.2013 12:08 # 0
А кто-то говорил, что в Паскале слишком много писать нужно.
> С чего мой язык должен тормазить
Вот и я не понимаю, с чего бы тут тормоза должны возникнуть?
superhackkiller1997 14.06.2013 12:23 # −5
Ну нормальный человек напишет как я и не будет ничего писать, но ты же похоже не нормальный.
> Вот и я не понимаю, с чего бы тут тормоза должны возникнуть?
Язык превращается в нестрогое говно, которое будет тормазить как твой паскаль. Вот у меня массив с начальным индексом 100 и мне пришла не константа - что конпелятору делать? Ему надо хранить начальный индекс, потом отнимать от того, что пришло. Следить за тем где же питушок заюзает этот щит.
Менять синтаксис, добавлять избыточность ради не нужности и т.п.
inkanus-gray 14.06.2013 12:31 # +1
Может быть, ты и многомерные массивы не юзаешь, ведь компилятору придётся тормозить, умножая первый индекс на длину строки?
P.S. enum в сишке — костыль.
bormand 14.06.2013 12:45 # +1
В крестах он ничуть не лучше. Кошерный енум разве что в последних жабах.
Abbath 16.06.2013 21:24 # 0
defecate-plusplus 16.06.2013 22:15 # +1
bormand 17.06.2013 05:18 # 0
superhackkiller1997 14.06.2013 14:46 # −4
Нельзя на этапе компиляции узнать индекс для не костантного значения. У тебя приходит из функции 100, а конпелятор не знает, что пришло 100 - ему надо отнять 100 по семантике.
Какие нахрен инструкции? Ты упорот?
Нету никаких многомерных массивов, анскилябра. Да, вменяемые люди их не юзают. Максимум, что пацаны юзают - степень двойки и последовательный обход( на лоре какраз идёт батл между мной и тамашними пропацанами, иди попробуй запилить хотябы 10тактов, а я пока поржу - там банальный 2ддифур).
Да я клал что там он для кастыль или нет.
inkanus-gray 14.06.2013 14:52 # +1
Паскаль разве позволяет определять массивы с неконстантными границами?
Если нужно обратиться к x[i] (заметьте, что i — неконстантное значение), то компилятор посчитает смещение i*sizeof(integer) - 5*sizeof(integer) + offset x. Так вот -5*sizeof(integer) можно узнать на этапе компиляции. Так трудно вычесть пять несуществующих элементов?
> ( на лоре какраз идёт батл между мной и тамашними пропацанами, иди попробуй запилить хотябы 10тактов, а я пока поржу - там банальный 2ддифур)
Излагайтесь яснее. Какой батл?
superhackkiller1997 14.06.2013 15:12 # −2
Что тебе неясно? в гугле набрал "лор" и "батл".
inkanus-gray 14.06.2013 15:19 # 0
> в гугле набрал "лор" и "батл".
Набрал. Куча ссылок на вконтактик и всякие разные игровые форумы, а ссылка http://www.linux.org.ru/tag/батл выдаёт 404.
superhackkiller1997 14.06.2013 15:28 # −2
лорбатл
TarasB 14.06.2013 15:34 # +1
первое - это выражение периодна компиляции,
а прибавление i - это уже так же как и при нулевом смещении.
Ты ведь на паскалях-адах нихуя не писал и в асмовый лист нихуя не заглядывал, просто заливисто кукарекаешь про то, в чём не рубишь, да?
inkanus-gray 14.06.2013 15:55 # 0
2.
3. Находим в листинге строки:
0x14 = 20 = 5 * sizeof(integer) — как раз то самое смещение. Да вычитается оно в рилтайме, но в одну инструкцию с добавлением индекса (i = eax) и умножением индекса на размер элемента (4 = sizeof(integer)). Учи коды инструкций 80386, лошара.
TarasB 14.06.2013 15:32 # +3
Посоны, приколитесь, наш хацкер не знает, что команда lea нахаляву поддерживает прибавление и вычитание константы при вычислении адреса!
bormand 14.06.2013 15:48 # +1
lea тут будет равносильна sub. Тоже лишняя команда. Тут нужно было воспользоваться сложением, встроенным в вычисление адреса в самой операции с элементом массива.
mov -100500(%ebx), %eax,
TarasB 14.06.2013 17:03 # +2
inkanus-gray 14.06.2013 17:10 # +1
А если нужно значение x[i], вместо lea сразу будет mov.
superhackkiller1997 15.06.2013 01:58 # −2
Кукареку - тарас питушок. И никакая не хвалява. Для питушка поясню, халява будет после разименования, а до это далеко не халява.
TarasB 15.06.2013 10:14 # +2
arr_addr + (index - first_index)?
Ну так если ты такой дебил, что даже до этого не можешь додуматься, то как ты можешь тут со взрослыми дядями спорить?
superhackkiller1997 15.06.2013 11:44 # −2
Мы посчитаем до мува, ай мы питушки не знаем как работает наша архитектура, под которую "мы"-питушки пишем. Хотя вы 486-епитушки, но даже тогда люди такой херни не сказали.
TarasB 15.06.2013 14:42 # +2
superhackkiller1997 16.06.2013 06:03 # −2
Иди покури маны, лет через 10авось поймёшь, сколько стоит бесполезные вычисление адреса до мува.
Вычитай из адреса - превращай код в питушню. Вычислить адрес конпелятор не может - он может взять только относительный адрес, тогда питушок тебе надо байдени фичагить в линкере. Никому это не упало.
inkanus-gray 16.06.2013 08:21 # 0
Что же касается массивов, то если все массивы с нулевой базой, то вычитать смещение придётся прямо в исходнике твоей программы, т. е. писать вместо паскалевского Ну и чем сишный код лучше, если в Паскале и исходник выглядит короче, и для компилятора больше простора для оптимизации?
superhackkiller1997 16.06.2013 09:47 # −3
Нет питушок, если уж у тебя есть что-то, что начинается не с нуля, от от него отнимается база в этапе вычисления i. Это быстрее, ибо это ничего не стоит.
Паскалевскйи вариант щит, лишнее говно, лишняя морока, лишний регистр, лишняя зависимость. Это не любят ни я, который читает код, ни конпелятор, ни х86.
Лучше тем, что он понятней. Не короче, а так же, просто ты написал это как питух. Не больше, а меньше.
Вычисления рядом с мувом(до него) дороги, ибо зависимость. Лишний регистр - дорого. Вычисление в том месте, о котором я говорил выше - дешевы, но конпелятор не осилит такую оптимизацию в 80% случаев.
inkanus-gray 16.06.2013 11:27 # +2
superhackkiller1997 16.06.2013 12:14 # −2
Питух, для статистического массива - конпелятор запилит тебе указатель( и то он не может, питух ты анскильный, ибо все адреса относительные). Но пацанам нужны массивы в куче, питух.
Питухи.
inkanus-gray 16.06.2013 12:38 # 0
superhackkiller1997 16.06.2013 13:18 # −2
Лишний регист - это попец для оптимизацтора конпелятора и для перфоманса вообще, питух.
TarasB 16.06.2013 13:22 # 0
for i in A'Range loop (ты ведь знаешь, что это за ЯП, ведь ты знаток 100500 языков, да?) для компилятор не составляет никакого труда превратить в последовательный перебор без лишних вычитаний и тесты на шутауте намекают, что у этого языка со скоростью всё зашибись.
Просто ты, питух, любишь дрочить руками то, что должен делать нормальный компилятор, и даже не знаешь нихуя про то, на что компиляторы способны.
inkanus-gray 16.06.2013 13:29 # +1
Изучи сначала форматы объектных файлов и посмотри, какие типы фиксапов там бывают.
В твоём же коде, когда все массивы принудительно с нулевой базой, придётся явно писать (i - 5), а это уже лишний регистр и попец для оптимизатора.
TarasB 16.06.2013 12:54 # +1
superhackkiller1997 16.06.2013 13:21 # −2
Что ты знаешь о производительности, питух?
TarasB 16.06.2013 11:58 # +2
Вот именно, и это, питушок, делается уже программой.
А вычитание из базы делается компилятором. Слился, питушок?
TarasB 16.06.2013 11:57 # 0
Нихуя оно не стоит, питух, это делает компилятор, питух, а не программа.
А сколько там думает компилятор, мне похуй, потому что в Дельфи он и так реактивный, в отличие от твоей убогой сишки.
bormand 14.06.2013 15:43 # +2
Для глобального массива - адрес начала массива известен, можно заранее вычесть, на производительности тоже не скажется.
Для массива в куче - вот тут да, получаем лишнее вычитание в рантайме (если на данной платформе нет команды, в которой можно указать два регистра + смещение не вычитая заранее).
Видимо у вас из-за этого и спор, что один представил массив на куче, а второй на стеке\глобалку.
bormand 14.06.2013 15:55 # 0
inkanus-gray 14.06.2013 16:03 # +1
superhackkiller1997 15.06.2013 01:56 # −3
Смешные 486-е питушки.
>Для массива в куче - вот тут да, получаем лишнее вычитание в рантайме (если на данной платформе нет команды, в которой можно указать два регистра + смещение не вычитая заранее).
МЫ получим питушню. Вменяемому человеку проще вычесть индекс, да и я не раду не видел, чтобы мне такая питушня понадобилась.
inkanus-gray 15.06.2013 09:04 # +2
Ага, всю работу с компилятора перекладывать на программиста. Может быть, ещё адреса переменных в уме считать, как делали до изобретения ассемблера?
superhackkiller1997 15.06.2013 11:46 # −4
Мы питушки, мы ущербаны - мы не понимаем что нам и когда надо. Вместо того, чтобы хранить нормальным интексы - мы питушки будет хранить говно с мыслью о том, что конпелятор нам поможет.
inkanus-gray 15.06.2013 12:07 # +4
superhackkiller1997 15.06.2013 12:16 # −2
Одно дело напрягать по делу, другое дело напрягать из-за анскильности некоторых питухов.
И да, вор напрягает конпелятор не больше, чем гото.
inkanus-gray 15.06.2013 12:18 # 0
TarasB 15.06.2013 14:43 # +3
3.14159265 15.06.2013 16:34 # +1
Деградируют.
inkanus-gray 14.06.2013 16:28 # 0
В Паскале можно объявить массив с дипазоном индексов поверх енума. В Си же нужно хакерство, как в твоём коде tarasB = 0, да к тому же думать, покроет ли размер массива мощность енума.
P.S. По запросу лорбатл находится одна ссылка, и то 404.
superhackkiller1997 15.06.2013 01:42 # −2
Питушок не осилил гуглокеш?
inkanus-gray 15.06.2013 09:03 # 0
Ага, если посчитать количество элементов енума и ручками выставить такой же размер массива.
> Питушок не осилил гуглокеш?
https://www.linux.org.ru/forum/development/9152724/page20#comment-9209945
Это что ли?
superhackkiller1997 15.06.2013 11:52 # −2
Питух не осилил передать последний елемент как "размер" массива?
Да.
TarasB 15.06.2013 14:44 # +3
По-моему, ты слишком увлёкся онанизмом.
LispGovno 16.06.2013 01:26 # +1
Как-будто бы что-то изменилось, если бы петушок был в бюстгальтере.
superhackkiller1997 16.06.2013 06:05 # −3
TarasB 16.06.2013 11:59 # +1
superhackkiller1997 16.06.2013 12:08 # −1
TarasB 16.06.2013 12:11 # 0
superhackkiller1997 16.06.2013 13:21 # −2
TarasB 16.06.2013 17:53 # 0
superhackkiller1997 16.06.2013 17:58 # −3
TarasB 14.06.2013 12:10 # +3
Это нагляднее.
> С чего мой язык должен тормазить и быть избыточным, только потому, что какие-то питушки что-то не осилили?
Почему ты не пишешь на сосемблере?
superhackkiller1997 14.06.2013 12:19 # −2
Для меня нет.
>Почему ты не пишешь на сосемблере?
Пишу, но сишка удобнее ущербанских макроассеблерах, а писать обвес на голяке - я не ущербан. Меня по предсказуемости для моего кода гцц устраивает - я не юзаю асм до случаев, когда припекло.
inkanus-gray 14.06.2013 12:23 # +1
superhackkiller1997 14.06.2013 12:26 # −4
А так ты предсвзятая лалка, которая дальше своего носа не видит.
neeedle 14.06.2013 12:38 # +1
inkanus-gray 14.06.2013 13:35 # +3
neeedle 14.06.2013 13:37 # 0
TarasB 14.06.2013 12:43 # +2
XDDDDDD
> непредсказуем
Ой умора, а сам на сишке говно пишет :D
> да и фичей 0
По сравнению с сишкой-то? Ахахаха ты клёвый
superhackkiller1997 16.06.2013 14:01 # −2
питушок.
>Ой умора, а сам на сишке говно пишет :D
Оно предсказуемо.
>По сравнению с сишкой-то? Ахахаха ты клёвый
Интринсики, http://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html, мощный конпелятор с вменяемой оптимизацией. Нормальные указатели, адресная арифметика, перфоманс и ещё тысячи.
TarasB 14.06.2013 12:25 # +5
Это тебе так кажется, а когда будешь старый проект отлаживать и в отладчике увидишь мутные цифры вместо человеческих имён, тогда поймёшь.
> но сишка удобнее ущербанских макроассеблерах
Так ты ведь анскилед, на сишке, скрывающей всё за тоннами непонятных абстракций, придуманных для ущербанов, тебе писать удобнее, чем на нормальных родных асмокодах? Какой ты хакиллер, ты лошара недоделанная же)))))
superhackkiller1997 16.06.2013 14:02 # −2
Я не работаю говнокопателем за еду, питух.
>Так ты ведь анскилед, на сишке, скрывающей всё за тоннами непонятных абстракций, придуманных для ущербанов, тебе писать удобнее, чем на нормальных родных асмокодах? Какой ты хакиллер, ты лошара недоделанная же)))))
Да, мне удобнее. Большой асмкод выглядит как питушня, а вменяемых ассемблеров нет.
TarasB 16.06.2013 14:17 # 0
Ты вообще нигде не работаешь, и даже в школе не учишься.
> Да, мне удобнее.
Хах вот жеж анскилябра
(чуть пальцы не сломал на последнем слове)
TarasB 14.06.2013 09:35 # 0
Ахаха, анскиллед. С возрастом самоуверенность проходит.
bormand 14.06.2013 10:03 # +1
Или наоборот развивается в тотальную мизантропию и манию величия ;)
TarasB 14.06.2013 10:06 # 0
neeedle 14.06.2013 12:23 # 0
bormand 14.06.2013 13:21 # +1
Vasiliy 14.06.2013 18:01 # 0
inkanus-gray 16.06.2013 12:50 # 0
superhackkiller1997 16.06.2013 13:31 # −2
Да и глобальная переменная - ты чё, это не по мете.
inkanus-gray 16.06.2013 13:35 # +1
Ну если глобальная переменная не нравится, сделай по-другому, но так, чтобы не падало. Покажи класс.
superhackkiller1997 16.06.2013 13:58 # −2
Мне нравится - питушкам нет.
>Твой код падает на ideone.com. Он вообще будет падать, если компилятор модифицированный, например с прополисом от IBM или с другим защитником стека. Компилятор не может догадаться, для чего тебе нужен стек.
Патамучто там питушарский call abi. Нахрен мне твой питушарский защитник стека? Я похож на питушка, которому это надо?
Он может это оптимизировать, как он это сделал в твоём случае. А вот он не оптимизирует, ибо питушок. Из-за ущербанского стандартса питушарни.
TarasB 16.06.2013 14:18 # +1
superhackkiller1997 16.06.2013 15:28 # −2
Вот объясни, почему конпелятор делать через стек, а не через регистры? Патамучто питушки перечиталь call abi.
Ну вообще-то объясни, почему конпелятор не оптимизирует этот случай? Что тут ущербного?
TarasB 16.06.2013 15:57 # +1
superhackkiller1997 16.06.2013 16:02 # −2
А когда ты передаёшь указатель - конпелятор должен задампить все регистры и прочую питушню, либо юзать 1 регистр.
Вобщем мужики вообще не юзают не инлайн функции - только в редких случаях, ибо слишком тормазит. Инлайн в 99% случаев.
inkanus-gray 16.06.2013 16:21 # 0
http://clck.ru/8hHAM
TarasB 16.06.2013 17:52 # +1
Вот ты и снова лоханулся.
> Ты итак уже обрабатываешь со структуру - её поля у тебя итак лежат в регистрах и вызов тебе ничего не будет стоить.
Это кто тебе сказал, что компилятор догадается все эти числа в регистры положить, да ещё и в точности в том порядке, в котором они передаются по конвенции?
> Вобщем мужики вообще не юзают не инлайн функции - только в редких случаях, ибо слишком тормазит. Инлайн в 99% случаев.
Если всё заинлайнить, то пограмма как раз замедляется, потому что код раздувается и перестаёт влезать в кэш, только ты, лошня понторезная, нихуя про это не знаешь и порешь кулхацкерную хуиту 20-летней давности.
Мужики вообще пишут inline только чтоб линковка не глючила, потому что компилятор лучше них сообразит, когда надо, а когда не надо встраивать тело функции, и делает он это независимо от слова inline.
superhackkiller1997 16.06.2013 18:00 # −2
Питушок.
>Это кто тебе сказал, что компилятор догадается все эти числа в регистры положить, да ещё и в точности в том порядке, в котором они передаются по конвенции?
Это тебе не делфи, питушок - гцц так умеет.
>Если всё заинлайнить, то пограмма как раз замедляется, потому что код раздувается и перестаёт влезать в кэш, только ты, лошня понторезная, нихуя про это не знаешь и порешь кулхацкерную хуиту 20-летней давности.
На лоре было про это тема - и такие питухи как ты - там слились.
>Мужики вообще пишут inline только чтоб линковка не глючила, потому что компилятор лучше них сообразит, когда надо, а когда не надо встраивать тело функции, и делает он это независимо от слова inline.
Питухи так пишут. Нихрена твой конпелятор незнает. Ты питух ничего о конпеляторах не знаешь. Ты, питух, несёшь полную херню.
Ты говоришь "неможет" на то, что конпелятор может и гвооришь "может" на то, что конпелятор не может. Питух.
TarasB 16.06.2013 18:06 # +1
Откуда тебе знать, ты асмовыхлопы не смотришь же.
> Питухи так пишут. Нихрена твой конпелятор незнает. Ты питух ничего о конпеляторах не знаешь. Ты, питух, несёшь полную херню.
Это ты сам себе сказал? В любой теме ты только кукарекаешь общими словами, под внешним слоем этих слов, чуть копми, видно полное незнание темы, только подростковый гонор и вера юного дрочера в то, что он руками лучше машины что-то сделает.
И да, передача 10 аргументов - это тоже дроево руками, передача структуры - это наглядно и просто, и как там компилятор распихает элементы структуры по регистрам - это уже разработчиков компилятора проблемы.
anonimb84a2f6fd141 16.06.2013 18:20 # −2
спасибо, не надо
inkanus-gray 16.06.2013 18:26 # 0
Т. е. передают по значению то, что не помещается в регистр, только питухи. А поскольку структуру мы передаём по ссылке, вызываемая функция один раз извлечёт её адрес, а поля будет извлекать по относительным смещениям. Лошадке же на 10 аргументов может не хватить регистров, поэтому придётся захламлять стек.
Да и при вызове функции заполнить структуру можно одним махом. Если там нули, это будет одна инструкция процессора типа REP MOVSB, а лошадка будет передавать каждый ноль индивидуально.
TarasB 16.06.2013 18:30 # 0
И конечно же, он передаст всё через 10 регистров, оставив компилятору минимум свободных регистров и свободы для оптимизации.
inkanus-gray 16.06.2013 18:35 # −1
superhackkiller1997 16.06.2013 19:06 # +1
TarasB 16.06.2013 19:22 # +3
А тру поцаны передают указатель на структуру.
superhackkiller1997 16.06.2013 19:44 # −2
TarasB 16.06.2013 20:02 # 0
superhackkiller1997 16.06.2013 19:05 # −1
Питух, ты думаешь она будет работать быстрее, чем 10мувов(хотябы 8-мибайтных, выровненым 16байтным она в питушню сольёт) подрят? Питух. Осисиль мемкопи, питух. Кому упрёлось занулять структуру в функции, питух.
Питух, какой ноль? Питух?
superhackkiller1997 16.06.2013 19:00 # −2
TarasB 16.06.2013 19:04 # −1
Ты безнадёжен.
anonimb84a2f6fd141 16.06.2013 19:10 # −3
TarasB 16.06.2013 19:16 # +2
anonimb84a2f6fd141 16.06.2013 19:17 # −3
http://vk.com/id29482
TarasB 16.06.2013 19:19 # −1
superhackkiller1997 16.06.2013 19:45 # −2
Vasiliy 16.06.2013 19:48 # 0
TarasB 16.06.2013 20:01 # 0
inkanus-gray 16.06.2013 19:40 # +1
bormand 16.06.2013 13:56 # +1
inkanus-gray 16.06.2013 14:52 # 0
Другое дело, что можно было реализовать стек для global_usr и функцию unbind, которая будет забирать из стека.
inkanus-gray 11.07.2013 14:53 # 0
superhackkiller1997 11.07.2013 15:32 # −1
inkanus-gray 11.07.2013 16:05 # 0
Этот код отличается от твоего, поскольку твой не работает с -fstack-check и с -fstack-protector. И сможет ли твой код обработать такое: Мне твой код с аналогичным мейном выдал только одну строку.
superhackkiller1997 11.07.2013 16:46 # −1
Не упёрлось никому. Надо быть полным животным, чтобы упороть стек. И да, у меня с ним прекрасно работает.
Мне выдаёт всё норм:
Выкинь свой атстойный 32битный питух, который протух лет 10назад - и лешишься проблем. Каллить функции через стек, когда у тебя есть 30регистров - упоротая затея, достойная топ1 по упоротости.
inkanus-gray 11.07.2013 20:59 # 0
bormand 11.07.2013 15:41 # +1
Трамплины не от хорошей жизни придумали... Они нахер бы никому не сдались, если бы не требовалась совместимость с сишными функциями, которым нужен указатель на функцию. И вот этот say_struct_t ты вместо указателя на функцию просунуть не сможешь.
neeedle 14.06.2013 07:43 # +3
Создатели си возгорелись завистью и сделали для своего язычка пипиську подлиннее ==, и вставили ее в логические операции, что бы чаще видно было ее.
Но самая большая, конечно же у программистов php, ===. Создатели этого языка говорят нам, что самые лучшие и востребованные специалисты находятся именно в этой области. Так что бросай ты и паскаль и си и что бы то ни было и изучай php! Ты будешь обласкан судьбой и женщинами и даже пользователи говнокода женского пола будут истошно прикусывать губу лишь при появлении твоего нового комментария.
Аминь!
inkanus-gray 14.06.2013 07:54 # +1
neeedle 14.06.2013 07:55 # +3
inkanus-gray 14.06.2013 08:04 # +1
bormand 14.06.2013 08:06 # 0
Ява - язык для женщин?
neeedle 14.06.2013 08:08 # 0
Все еще в раздумьях.
bormand 14.06.2013 08:22 # +1
Java, C#.
Если еще раздумываешь - не связывайся с С++.
neeedle 14.06.2013 08:54 # 0
Но на шарпах работа нудная. На джаве вроде бы поинтересней, но хз.
bormand 14.06.2013 10:10 # 0
neeedle 14.06.2013 10:15 # 0
roman-kashitsyn 14.06.2013 10:17 # +1
TarasB 14.06.2013 10:20 # 0
(ник не занимать, у меня акк гугловского разработчика уже так назван).
neeedle 14.06.2013 10:22 # 0
roman-kashitsyn 14.06.2013 10:26 # +2
neeedle 14.06.2013 10:33 # 0
defecate-plusplus 14.06.2013 10:34 # +1
от любви до ненависти?
а отвечая на вопрос - без хотя бы малой доли любви к битоебству (к слову, хотя бы понимать, что такое byte order, да?) в c/c++ делать нечего, спасибо
roman-kashitsyn 14.06.2013 10:44 # 0
Я имел в виду везде, где необходимо что-то нестандартное, требующее большой производительности. Для типичных вещей есть более приятные инструменты.
Ну и продуктивно писать на плюсах, не прочитав пару талмудов, довольно сложно.
bormand 14.06.2013 10:58 # +2
А прочитав эту пару талмудов еще сложнее ;) Особенно если среди них попался Александреску.
roman-kashitsyn 14.06.2013 11:05 # 0
Ну а что такого в Александреску? Почему-то его уже немного устаревшую книжку преподносят как жуткий матан. По мне так она написана живым языком, весьма легко читается и поднимает много интересных тем.
neeedle 14.06.2013 11:13 # 0
Как и на любом другом языке. Без рихтера, на шарпах тоже делать нечего.
bormand 14.06.2013 10:50 # 0
neeedle 14.06.2013 10:50 # 0
Я так не думаю.
Но, только ради того, что бы кому-то что-то доказывать, я его изучать не хочу. О перспективах думаю.
bormand 14.06.2013 10:56 # 0
Осилите конечно, лет через 5, как и все остальные крестовики, но просто там настолько много подобных архитектурных и языковых тонкостей, что можно свернуть голову. А если нет желания связываться с тонкостями платформ (а у вас его явно нет, т.к. про байт ордер только недавно узнали), то лучше писать на яве или шарпе, и горя не знать. Смысла в использовании плюсов "вместо явы" в наши дни нет никакого.
TarasB 14.06.2013 11:06 # 0
nemyx 08.07.2020 09:41 # 0
neeedle 14.06.2013 13:35 # 0
Потому, что это мне нравится. Если я чего-то не знаю, то это не значит, что я это не хочу знать, а значит, что я занимался другим.
Так что не надо ставить мне рамки пожалуйста.
TarasB 14.06.2013 10:35 # +2
Я набрал 1000 закачек (https://play.google.com/store/apps/details?id=tarasB.FluidArkanoid.free) и в честь этого выложил исходники (http://www.gamedev.ru/files/?id=88780), думаю, материала для уютненького там тоже достаточно.
anonimb84a2f6fd141 11.07.2013 21:41 # −1
inkanus-gray 14.06.2013 12:06 # 0
anonimb84a2f6fd141 11.07.2013 21:41 # −1
inkanus-gray 11.07.2013 21:58 # 0
superhackkiller1997 11.07.2013 15:49 # −1
Это сделанно для того, что глупые школьнички путают = ==.
LispGovno 15.06.2013 13:42 # +1
:=3
guest 15.06.2013 17:25 # −1
anonimb84a2f6fd141 27.06.2013 20:05 # −2
Vindicar 13.06.2013 18:20 # +5
А по теме: лабы и к приравненный к ним код - не ГК по определению.
inkanus-gray 13.06.2013 18:28 # +4
anonimb84a2f6fd141 13.06.2013 23:19 # +2
3.14159265 14.06.2013 12:52 # +4
Почему нынче за троллинг принимаются малограмотные попытки залупаться, заканчивающиеся поеданием говна в прямом эфире?
guest 14.06.2013 09:31 # +6
«одним из design goals при разработке Паскаля была возможность LL(1)-разбора — т.е. автоматом, который видит только один следующий символ текста. Большинство «живых языков» в LL не укладываются: например, в Си на int может начинаться объявление либо переменной, либо функции, и мы не может отличить одно от другого, пока не дочитаем строку до конца.»
http://habrahabr.ru/post/99466/
defecate-plusplus 15.06.2013 12:11 # 0
eth0 15.06.2013 22:24 # +3
Вот и всплывает постоянная слабость уютненького - длинные нити никак не отделить. Явно нужна вложенность поглубже или чисто линейный вид. В паре мест можно запутаться, кто кому чего отвечает.
superhackkiller1997 16.06.2013 06:07 # −4
inkanus-gray 16.06.2013 08:15 # +2
eth0, отвечаю на ваш вопрос...
Или добавить кнопочку после # (ссылки на сам комментарий в преамбуле комментария).
И, чтобы долго не листать, пригодилось бы сворачивание ответов к комментариям корневого уровня, т. е. кнопки сворачивания/разворачивания кустов, как в том же ЖЖ.
Stertor 25.06.2013 23:16 # −2
guest 23.09.2016 23:08 # 0
- паскаль говно
- царь, ты мой кумир
barop 23.09.2016 23:12 # 0