История изменений
Исправление shkolnick-kun, (текущая версия) :
а в plain C у вас нет и никогда не будет вариантов помимо простыни нечитабельного говнокода с ручными проверками
Как насчет
#define MY_CHK_ARR(prefix,a,i,postfix) \
do{ \
if (MY_UNLIKELY(i > MY_SZ_(a))) { \
printf("Out of bounds access: %s: %d", __FILE__, __LINE__); \
exit(-1); \
} \
prefix a[i] postfix; \
}while (0)
По сути - та же 1 иснстукция.
Без простыни.
Исправление shkolnick-kun, :
а в plain C у вас нет и никогда не будет вариантов помимо простыни нечитабельного говнокода с ручными проверками
Как насчет
#define MY_CHK_ARR(prefix,a,i,postfix) \
do{ \
if (MY_UNLIKELY(i > MY_SZ_(a))) { \
printf("Out of bounds access: %s: %d", __FILE__, __LINE__ ); \
exit(-1); \
} \
prefix a[i] postfix; \
}while (0)
По сути - та же 1 иснстукция.
Без простыни.
Исправление shkolnick-kun, :
а в plain C у вас нет и никогда не будет вариантов помимо простыни нечитабельного говнокода с ручными проверками
Как насчет
#define MY_CHK_ARR(prefix,a,i,postfix) \
do{ \
if (MY_UNLIKELY(i > MY_SZ_(a))) { \
exit(__LINE__ | __FILE__<<16); \
} \
prefix a[i] postfix; \
}while (0)
По сути - та же 1 иснстукция.
Без простыни.
Исходная версия shkolnick-kun, :
а в plain C у вас нет и никогда не будет вариантов помимо простыни нечитабельного говнокода с ручными проверками
Как насчет
#define MY_CHK_ARR(prefix,a,i,postfix) \
do{
if (MY_UNLIKELY(i > MY_SZ_(a))) { \
exit(__LINE__ | __FILE__<<16); \
} \
prefix a[i] postfix; \
}while (0)
По сути - та же 1 иснстукция.
Без простыни.