fk0, легенда (27.11.2013 14:53, просмотров: 441) ответил ыыыыыыы на впервые с 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]