Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Глюки C ??

4
28 сентября 2001 года
mike
3.7K / / 01.10.2002
Если я добавляю эту функцию в сорцы (просто добавляю, я ее даже не вызываю), то Segmentation Fault

--------------
void make_crctable( void ) {
unsigned int i, j;
UCRC r;

for (i = 0; i <= 255; i++) {
r = i;
for (j = 8; j > 0; j--) {
if (r &amp; 1) r = (r >> 1) ^ CRCPOLY;
else r >>= 1;
}
crctable = r;
}
}
-------------

если же я ее заменяю на

--------------
void make_crctable( void ) {
}
-------------

то все работает.

И Все это только во FreeBSD, в Windows и в SUSE Linux все работает и так, и так.

449
28 сентября 2001 года
Fantasist
124 / / 20.06.2000

Интересно. А другой компилятор не пробывал?

Кстати мой старенький компилятор такое выражение не допускает:

if (r &amp; 1) r = (r >> 1) ^ CRCPOLY;
else r >>= 1;

Только так:

if (r &amp; 1) {r = (r >> 1) ^ CRCPOLY;}
else {r >>= 1;};

4
28 сентября 2001 года
mike
3.7K / / 01.10.2002
У много чего пробовал. Этот же компилятор, но для другого Unix'a - и все работает.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог