ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
24 ноября
467942 Топик полностью
fk0, легенда (27.11.2013 14:53, просмотров: 442) ответил ыыыыыыы на впервые с MIRSA ознакомился по Вашей ссылке (но такого г-на в верилог методологиях over9000), имхо бредовые правила
Считаю MISRA в значительной степени маразмом. Более того, я за динамическое (malloc) выделение памяти (vs статическое или в стеке). Потому, что переполнения в последнем легко отслеживаются и средствами отладки, и в рантайме (есть "процесс" вяло перебирающий кучу и проверяющий целостность границ, а также при (ре)аллокации конкретного сегмента проверяется). Некоторые алгоритмы без рекурсии будут только плодить ошибки (их трудно переписать, нужен вручную управляемый стек и т.п., тем более, что в приличных CPU вылет стека контролируется). Про типы -- да, маразм порядочный (хотя, надо признать, их подход позволяет говнокоду надёжно работать, а подход из C99 требует сразу писать не говнокод). Чем не понравилось деление не понимаю, наверное трюками типа приведённого ниже: на не-unix платформах какого-то стандарта на обработку исключительных ситуаций нет. #include <stdio.h> #include <signal.h> #include <setjmp.h> int main() { volatile int x=0; jmp_buf b; signal(SIGFPE, ({ void sigfpe(int signo) { longjmp(b, signo); }; sigfpe; })); if (! setjmp(b)) printf("5/0=%d\n", 5/x); else puts("computing 5/0 failed!"); return 0; }
[ZX]