- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
typedef float vec_t;
...
typedef vec_t matrix3x4[3][4];
...
void Matrix3x4_ConcatTransforms( matrix3x4 out, const matrix3x4 in1, const matrix3x4 in2 );
...
static matrix3x4 g_bonestransform[MAXSTUDIOBONES];
static matrix3x4 g_rotationmatrix;
...
matrix3x4 bonematrix;
...
Matrix3x4_ConcatTransforms( g_bonestransform[i], g_rotationmatrix, bonematrix );
d_fomenok 24.04.2016 20:27 # −3
gost 24.04.2016 20:35 # −1
kipar 24.04.2016 21:47 # +1
Новодел какой-то. У меня нельзя.
1024-- 24.04.2016 22:41 # +6
По идее, логично было бы позволять передавать все типы, у которых не больше слов const на указанных в сигнатуре местах (кроме const в сигнатурах функций при передаче указателей - там количество const должно быть не меньше указанного в сигнатуре).
Dummy00001 25.04.2016 16:48 # 0
roman-kashitsyn 25.04.2016 16:49 # +3
Уже в c++98 можно "метопрограммно" вычислить :)
Antervis 26.04.2016 13:58 # 0
inkanus-gray 26.04.2016 14:42 # 0
Antervis 26.04.2016 15:39 # 0
... где-то чуть ниже ...
> Починил:
> typedef const matrix3x4 *cmatrix3x4;
inkanus-gray 26.04.2016 15:43 # 0
Xom94ok 26.04.2016 14:44 # +2
inkanus-gray 26.04.2016 14:47 # +3
kegdan 26.04.2016 14:49 # +3
Любой, кто кодил на сишке?
inkanus-gray 26.04.2016 14:50 # +2
kegdan 26.04.2016 14:52 # +2
Мне кажется, что сишка - это основополагающий язык программирования и любой программист должен его знать.
Тут встает вопрос программисты ли 1с-ники и пхпешники...
Dummy00001 26.04.2016 18:41 # +3
С - нет. Асм - да.
Знать - нет. Но раз в глаза ему посмотреть, и пару простых лаб на нем написать - да.
После этого и С, и Фортран - и даже Лисп - уже будут простыми. И после этого басики (шарпы и жабы) будут уже совсем мелочами.
guest 26.04.2016 18:42 # +1
конечно же сишка это лингва франка современных компьютеров
на нем описывают алгоритмы и API операционок
Не знать си это примерно как не знать латынь для историка церкви
Xom94ok 26.04.2016 19:37 # +1
Только после знакомства с asm x86 из какой-то книги, мне стало всё понятно.
guest 26.04.2016 19:43 # +1
я тоже только после асма понял что такое куча и стек и как работают указатели
а как это опровергает мои слова?
Antervis 27.04.2016 13:54 # 0
3.14159265 28.04.2016 20:45 # 0
>>на нем описывают алгоритмы
Ага-ага. Только алгоритмы описывают в алголо- или бейсико- подобных псевдокодах.
https://en.wikibooks.org/wiki/LaTeX/Algorithms
Или даже напитонских (с отсутствием endов и отступами). Но никак не в сишных значках и закорючках.
Koncord 29.04.2016 13:55 # 0
wvxvw 29.04.2016 14:19 # 0
Koncord 29.04.2016 14:47 # 0
Vasiliy 29.04.2016 14:50 # +3
Koncord 29.04.2016 14:53 # 0
kegdan 29.04.2016 15:17 # +2
Vasiliy 29.04.2016 15:21 # 0
И почему в интернетах оверхулион сайтов на пхп, а на с можно пересчитать на пальцах?
guest 29.04.2016 16:31 # 0
PHP, кстати, тоже не удобно.
Но вопрос про хулион, конечно, глуп. Миллионы мух.
guest 29.04.2016 16:31 # +1
wvxvw 30.04.2016 01:59 # +1
Си вообще для этой задачин не подходит. В нем нельзя выразить много чего из нормальных языков, зато в нем есть много неоднозначностей и неопределенностей, и дохера ненужных вещей, о которых никому не интересно знать, при чтении алгоритмов, таких как, например, что будет если к беззнаковому индексу массива прибавить отрицательное знаковое число.
guesto 01.05.2016 03:51 # +3
Запомни: что можно выразить на одном тюринг-полном языке ВСЕГДА можно выразить и на другом
Вопрос в сахаре
На си ему, блядь, алгоритм не выразить.
На PHP наверное выразить, ага
3_14dar 01.05.2016 19:41 # 0
guesto 01.05.2016 20:04 # +1
просто wxvw бессмысленный пиздабол не владеющий терминологией, да еще и не осиливший си
3_14dar 01.05.2016 21:12 # −1
guesto 02.05.2016 03:15 # +1
это так смешно
3_14dar 02.05.2016 04:23 # −1
kerman 26.04.2016 20:26 # 0
А потом доходит до употребления веществ, потому что у асма нет иструментов управления сложностью: http://ekimoff.ru/230/
kegdan 26.04.2016 21:00 # 0
bormand 26.04.2016 22:07 # 0
kegdan 26.04.2016 22:08 # 0
Antervis 27.04.2016 13:53 # +1
inkanus-gray 27.04.2016 13:55 # 0
Dummy00001 27.04.2016 14:21 # +1
или с моей перспективы: на С учат структурное программирование, максимально скрывая/игнорируя детали того как железо работает.
подмножество асма что бы простые программы писать освоить достаточно легко.
после написания пары программ на асме быстро понимаешь: зачем нужны функции, зачем нужны типы данных и структурное программирование, зачем нужны абстракции и стандартные библиотеки, и т.д.
Antervis 27.04.2016 15:17 # +6
Dummy00001 27.04.2016 15:24 # +1
3.14159265 27.04.2016 15:58 # 0
3_14dar 01.05.2016 21:13 # 0
Оче толсто
kegdan 01.05.2016 21:40 # 0
guesto 02.05.2016 03:14 # 0
Antervis 27.04.2016 15:18 # 0
1024-- 27.04.2016 16:52 # +2
Это неявное умножение не добавляет ровно никакого препятствия для понимания указателей. Вот хочу я выделить 15 интов - пищу malloc(15 * sizeof(int));, этот sizeof(int) сразу же учит писать любой вменяемый сишконаставник как только требуется работать с динамической памятью. Как только я увидел array + i, у меня возник только один вопрос: "Где же sizeof(int), Карл?" И я не стал гиперабстрактным заедушным питухом, я наоборот к нотации царского маллока стремился. Си по сути это умножение маскирует только в одном месте, оставляя пользователю всякие malloc/qsort на закуску. Заодно рассказали про юнионы. Потом попросили реализовать бл**ский двусвязный список. После всего этого никаких вопросов про адреса уже не было, всё стало очевидным.
Вот многомерные массивы - это да, питушня какая-то. Но после того, как изучишь одномерные, они уже не сдвинут с дороги истины.
Наассемблер меня послали уже после того, как понял указатели и посмотрел несколько менее брейнфакоподобных языков.
3.14159265 27.04.2016 18:48 # +3
> я наоборот к нотации царского маллока стремился
>Потом попросили реализовать бл**ский двусвязный список.
Надеюсь ты заяснил по хардкору этим анскилябрам, что единственная полезная структура данных - одномерный массив?
1024-- 27.04.2016 18:58 # +1
Хотя, потом написал калькулятор, где переменные лежали в массиве (double * или variable *), т.к. std::map, документацию на него и все эти ссылки амперсандные не осилил.
3.14159265 27.04.2016 20:44 # +1
> я наоборот к нотации царского маллока стремился
Оно и видно. Цари ведь не используют аллокаторы.
Чтобы понять лучшее - надо изучить асм. Это основа всего. Изучая сишку ты знаешь - как делают питухи и к чему это приводит - и ты уже не будешь делать как питух.
Не изучая сишку, а потокая говну, как ты, - ты будешь до конца дней своих говнарём, который ваяет говно и думает, что ваяет не говно - всё просто.
Поэтому в x64 ты можешь сделать 4к маллоков на всю ширину физического адресного пространства. Это в бесконечное число раз быстрее любого заедушного софтварного аллокатора, ибо любой питушарский аллокатор это же и делает, но имеет оверхед намного больше, чем операции связывания в ведре.
Koncord 25.04.2016 07:43 # −1
kegdan 26.04.2016 14:54 # +2
Koncord 27.04.2016 11:10 # +4
Dummy00001 25.04.2016 11:23 # +6
да. но не `char * const`. указатель на конст чар != конст указатель на чар.
> Что же тогда с матрицами то не так?
вот именно это и разница. у тебя констный не массив (который ты прячешь за тайпдефом), а указатель на массив. (в тему почему в С тайпдефы плохо.) если сделаешь из matrix3x4 структуру, то будет работать так как ты ожидаешь.
ЗЫ понедельник. утро. похмелье. может быть гоню.
inkanus-gray 26.04.2016 16:16 # 0
А у меня сложилось впечатление, что не в тайпдефах тут проблема.
Dummy00001 26.04.2016 17:35 # 0
inkanus-gray 26.04.2016 18:02 # 0
Вы за то, чтобы в языке был явный способ отличить скалярные типы (которые можно передать по значению) от «больших» типов, которые передаются только по указателю?
Dummy00001 26.04.2016 18:33 # 0
я ни за, ни против. просто в С это так.
в крестах все меняется, потому что все в классы/структуры завернуто.
roman-kashitsyn 25.04.2016 11:37 # +5
inkanus-gray 26.04.2016 15:04 # 0
И при вызове: