Я бы хотел поиграть с функцией построения вызовов в gcc ...
Из документа:
- Встроенная функция:
void * __builtin_apply (void (*function)(), void *arguments, size_t size)
Эта встроенная функция вызывает функцию с копией параметров.
описывается аргументами и размером.
Значением аргументов должно быть значение, возвращаемое __builtin_apply_args
. Размер аргумента указывает размер данных аргумента стека в байтах.
Эта функция возвращает указатель на данные, описывающие, как вернуть любое значение, возвращенное функцией. Данные сохраняются в блоке памяти, выделенном в стеке.
Не всегда просто вычислить правильное значение для размера. Это значение используется __builtin_apply
для вычисления объема данных, которые должны быть помещены в стек и скопированы из области входящего аргумента.
Мой вопрос: как узнать, какой размер дать этому аргументу размера? И каковы последствия, если значение слишком мало или слишком велико?
Спасибо ...