- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
//рекурсивная процедура создающая структуру меню
byte form_hash(phasharray vrarr, WORD* ni, byte* ne)
{
byte ct=MainMenu[(*ni)].numSubMenus, ict;
phasharray vrarrcr;
if((*ni)++==0) pmain=vrarr; // если первый проход - запоминаем ссылку на главное меню
for (ict=0; ict<ct; ict++)
{
vrarr->hash[ict].pitem=(tmenuitem*)RTKGetBuffer(&menuPool);
//инициализация строки элемента
scopy0(((*((*vrarr).hash[ict].pitem)).menustr), MainMenu[*ni].nameMenu);
if (MainMenu[*ni].numSubMenus!=0)
{
(*((*vrarr).hash[ict].pitem)).pnextlev=RTKGetBuffer(&hashMenuPool);// создание хэша
vrarrcr=(phasharray)(*((*vrarr).hash[ict].pitem)).pnextlev;//вводим новую переменную для облегчения доступа к созданной структуре
(*vrarr).hash[ict].quantity=(byte)MainMenu[*ni].numSubMenus;//запоминаем количество элементов в меню уровнем выше
(*vrarrcr).pPrevLev=vrarr; // ссылка на предыдущий элемент
(*((*vrarr).hash[ict].pitem)).fpmenu=true;
if (MainMenu[*ni].numSubMenus==MENU_FUNC) // вызов процедуры динамического формирования меню
{
menupr_params.vrarr=vrarrcr;
menupr_params.phashprev=vrarr;
menupr_params.ni=ni;
menupr_params.ne=ne;
menupr_params.ict=ict;
(MainMenu[*ni].pproc)();
(*ni)++;
} else
{
if(MainMenu[*ni].pproc) // если исключение (перед входом в подменю необходимо выполнить функцию)
{
changeArr[(*ne)++]=vrarrcr;
(*((*vrarr).hash[ict].pitem)).pexec=MainMenu[*ni].pproc;
(*((*vrarr).hash[ict].pitem)).fpmenu=false;
};
// исправляем значение элементов
(*(vrarr)).hash[ict].quantity=form_hash(vrarrcr, ni, ne);
};
// проверка сформированного меню
switch ((*(vrarr)).hash[ict].quantity)
{
case MENU_NO: // нет подменю
// освободить эл-т
RTKFreeBuffer(&hashMenuPool, vrarrcr);
(*((*(vrarr)).hash[ict].pitem)).pexec=*menu_refresh;
(*((*(vrarr)).hash[ict].pitem)).fpmenu=false;
break;
case MENU_NOEL: // не формировать эл-т
// освободить эл-т
RTKFreeBuffer(&hashMenuPool, vrarrcr);
RTKFreeBuffer(&menuPool, vrarr->hash[ict].pitem);
ict--;
ct--;
break;
case MENU_FUNC: // нет подменю, нормальная функция
RTKFreeBuffer(&hashMenuPool, vrarrcr);
(*(vrarr)).hash[ict].quantity=0;
//(*((*vrarr).hash[ict].pitem)).fpmenu=false;
break;
}
} else // заполнение элемента
{
(*((*vrarr).hash[ict].pitem)).pexec=MainMenu[*ni].pproc;
(*((*vrarr).hash[ict].pitem)).fpmenu=false;
(*ni)++;
};
};
return ct;
};
govnocoder 04.09.2009 13:19 # 0
А в целом, на С по другому и не напишешь, язык такой :(
Barmaglot 04.09.2009 15:20 # +2
inkanus-gray 05.06.2016 18:54 # 0
Тут ещё стили смешаны: где-то звёздочка и точка, а где-то ->
guest 10.09.2009 00:20 # −2
guest 30.09.2009 14:24 # 0
guest 31.10.2009 05:16 # +2
С уважением, guest.
guest 10.11.2009 23:19 # 0
guest 12.11.2009 20:51 # 0
MATEMATuK_u3_PAIIIKu 18.07.2020 20:30 # 0
В сишку стрелку не завезли? Именно поэтому я за «PHP».
TEH3OPHblu_nemyx 18.07.2020 20:36 # 0
MATEMATuK_u3_PAIIIKu 18.07.2020 20:41 # 0
TEH3OPHblu_nemyx 18.07.2020 20:45 # 0
MATEMATuK_u3_PAIIIKu 18.07.2020 21:03 # 0
gost 18.07.2020 21:06 # +1
>>> Пока, Python. Привет, Julia❗
>>> По мере того, как Python замедляет свой впечатляющий темп, растёт новый сильный конкурент.
>>> Этим же руководствуются создатели Julia: они хотят сохранить хорошее из других языков и отбросить плохое. Но в случае с Julia стои́т гораздо более амбициозная задача: вместо того, чтобы заменить какой-то один язык, она хочет превзойти их всех.
>>> Вот что сами говорят создатели языка:
Дядя Пи, смотри, тут анскильные лалки опять на сишку покушаются!
MATEMATuK_u3_PAIIIKu 18.07.2020 21:11 # 0
Джу-ли Джулия
О-о-о
TEH3OPHblu_nemyx 18.07.2020 23:02 # 0
gostinho 18.07.2020 23:07 # 0
bormand 19.07.2020 02:21 # 0
Desktop 18.07.2020 21:33 # 0
3.14159265 18.07.2020 22:37 # 0
Скорее покушаются на Путуха.
>Мы хотим, чтобы язык был гомоиконическим, такой как Lisp
Дальше уже не читал, вспомнил знаменитое гоатсеиконное ascii.
gost 18.07.2020 22:39 # 0
Там дальше и сишку гнобят:
>>> Разработчики Julia хотели получить такой же быстрый язык, как C — но то, что они создали, стало ещё быстрее.
3.14159265 18.07.2020 22:48 # 0
Такие заявы могут кидать или тролли, или придурки-маркетолухи.
Пруфлинк ведёт говносайт medium.com c julia-vs-python
Оттуда ещё один пруфлинк
Сюда
https://discourse.julialang.org/t/comparing-python-julia-and-c/17019
Comparing Python, Julia, and C++
С, C++. Действительно какая разница?
3.14159265 18.07.2020 22:54 # 0
Дибил-переводчик даже не сходил по своим же ссылкам, и обосрался.
В бенче С++.
https://github.com/ziotom78/python-julia-c-/blob/master/c%2B%2B-speed.cpp
I created three codes in Julia 1.0, Python3+NumPy, and C++. In each code, I run simple computations on large arrays, with an increasing number of parameters.
Julia is significantly faster than C++, even when using -O3 with g++. In order to help C++, I cheated and modified the C++ code so that functions f, g, etc. no longer allocate the vector containing the result, which is instead allocated before the benchmark starts (see the code on GitHub). However, as you can see from the plot, Julia is still the best!
For n = 2, C++ is the slowest solution
gostinho 18.07.2020 22:45 # 0
bormand 18.07.2020 22:38 # +2
TEH3OPHblu_nemyx 18.07.2020 20:46 # 0