Код: Выделить всё
void func(u8_t argc, ...);Код: Выделить всё
void func(u8_t argc, ...);При компиляции этого заголовочного файла куча ошибок:urry писал(а):http://forum.sources.ru/index.php?showtopic=248068
здесь находится h файл для загрузки этой длл.
Код: Выделить всё
/* Массив меток перехода на 16 альтернатив switch'а (от 5 до 20) */
static void *arr[16] = { &&L5, &&L6, &&L7, ..., &&L20 };
/* При таких значениях x мы попадаем в один из case'ов switch'а,
* адрес для перехода загрузим из таблицы arr. При этом надо понимать, что
* нулевой элемент таблицы соответствует значению x = 5. */
if (x >= 5 && x <= 20)
goto *arr[x-5];
else
goto L_default;
L5:
y = 10;
L6:
y = 25;
L7:
y = 38;
...
L20:
y = 125;
L_default:
y = 1000;
Чисто ради интереса - зачем?Надо сделать swith без проверки условий.
Именно из за этого =) сам я ещё не разбирался в данном коде но автор говорит что его программная часть около 4 раз быстрее работать будет.Не думаю, что прирост в скорости от такого решения будет ощутим в общем случае...
Ключевые слова.сам я ещё не разбирался в данном коде
Код: Выделить всё
void* itoa(int input, char *buffer, int radix)itoa принимает передаваемое целое число input и конвертирует его в число в основании корня radix. Полученное число (последовательность цифр основания radix) записывается в буфер вывода buffer.
Аргумент radix определяет основание системы исчисления для input; его значение может лежать в пределах от 2 до 36.
В зависимости от реализации, itoa может возвращать указатель на первый символ в буфере buffer, или может быть создана таким образом, чтобы передавать нуль-buffer, в результате чего функция возвращает длину строки, которая «будет» записана в корректный buffer.
only pure true norwegian blackx 
Код: Выделить всё
/********************************************************************/
/********************************************************************/
// Посылает один символ в USART1.
int putchar(int c)
{
if(c == '\n')
c = '\r';
while(!(USART1->SR & USART_SR_TC));
USART1->DR = c;
return c;
}
size_t __write(int handle, const unsigned char *buf, size_t bufSize)
{
for (int i = 0; i < bufSize; i++)
{
putchar(buf[i]);
}
return bufSize;
}Код: Выделить всё
extern "C"
{
void TIM7_IRQHandler(void)
{
extern int i;
if(TIM7->SR & TIM_SR_UIF)
{
if (i==500)
{
printf ("I = %0.2f\n",3.25);
i=0;
}
else
i++;
TIM7->SR &= ~TIM_SR_UIF; //сбросили флаг
}
}
}
only pure true norwegian blackx 
Может быть ) А как с этим бороться?blackx писал(а):Сдается мне у вас банальный stack overflow...
only pure true norwegian blackx 