13.02.2017, 15:58
(
Последний раз редактировалось stabker; 12.11.2017 в 12:43.
)
Несколько макросов, позволяющих сделать гораздо быстрее то, что обычно делается циклом.
PHP код:
//обменивает содержимое массивов - swap_arrays(array_1[], array_2[], arrays_size)
#define swap_arrays(%0,%1,%2); \
{ new _bf_[%2];\
memcpy(_bf_, %0, 0, (%2) * 4, %2);\
memcpy(%0, %1, 0, (%2) * 4, %2);\
memcpy(%1, _bf_, 0, (%2) * 4, %2); }
//очищает массив - clean_array(array[], size)
#define clean_array(%0,%1); \
{ new _tpl_[%1]; \
memcpy(%0, _tpl_, 0, (%1) * 4, %1); }
//копирует содержимое массива в другой массив - copy_array(source[], destination[], size)
#define copy_array(%0,%1,%2) memcpy(%1, %0, 0, (%2) * 4, %2)
//заполняет ячейки массива указанной константой - fill_array(array[], value, size)
#define fill_array(%0,%1,%2); \
{ new _tpl_[%2] = { %1, ... }; \
memcpy(%0, _tpl_, 0, (%2) * 4, %2); }