Size: a a a

2020 May 31

O

Oleg in r0 Crew (KZ)
Franky_T
проверила на чистом. Он просто не останавливается и выводит результаты переполнения
Тип uint? Значения счетчика становятся отрицательными? Сборка Release?
источник

T

Thatskriptkid in r0 Crew (KZ)
Oleg
Не знаю, проверить не на чем, но обработчик исключений, как мне кажется, должен крашнуть приложение. Если оно скомпилировано. В среде разработки - возможно - не упадет, т.к. среда неявно обработает исключение.
я все равно не понимаю о чем вы, в си нет такого механизма исключений
источник

F

Franky_T in r0 Crew (KZ)
Oleg
Тип uint? Значения счетчика становятся отрицательными? Сборка Release?
положительными, конечно
источник

F

Franky_T in r0 Crew (KZ)
Thatskriptkid
я все равно не понимаю о чем вы, в си нет такого механизма исключений
Олег говорит о том, что переполнение беззнакового инта должно вызвать падение.
источник

O

Oleg in r0 Crew (KZ)
Franky_T
Олег говорит о том, что переполнение беззнакового инта должно вызвать падение.
+
источник

T

Thatskriptkid in r0 Crew (KZ)
Нет, не должно
источник

T

Thatskriptkid in r0 Crew (KZ)
Сейчас проверю
источник

F

Franky_T in r0 Crew (KZ)
Thatskriptkid
Нет, не должно
+)
источник

F

Franky_T in r0 Crew (KZ)
хм, да, отрицательные. Щас пруф будет.
источник

F

Franky_T in r0 Crew (KZ)
unsigned int i=999;
void my_print(){
 printf ("%d\n", 10-i);
 i--;
 sleep(1);
  my_print();
}

int main(void)
{
 my_print();
   return 0;
}
источник

F

Franky_T in r0 Crew (KZ)
gcc -Wall test.c
test.c:8:2: warning: implicit declaration of function 'sleep' is invalid in C99 [-Wimplicit-function-declaration]
       sleep(1);
       ^
test.c:5:16: warning: all paths through this function will call itself [-Winfinite-recursion]
void my_print(){
              ^
2 warnings generated.
Tania: $ ./a.out
-989
-988
-987
-986
-985
-984
-983
-982
-981
-980
-979
-978
-977
-976
-975
-974
-973
-972
-971
-970
-969
-968
-967
^C
источник

F

Franky_T in r0 Crew (KZ)
думаю, не надо объяснять, зачем мне слип и почему до десяти, остальное и так понятно. Суть та же
источник

O

Oleg in r0 Crew (KZ)
Нет, не та. У тебя не происходит int overflow, пока счетчик не дойдет до -1
источник

T

Thatskriptkid in r0 Crew (KZ)
Franky_T
хм, да, отрицательные. Щас пруф будет.
Потому что у тебя спецификатор %d
источник

O

Oleg in r0 Crew (KZ)
У тебя результат вычитания отрицательный
источник

F

Franky_T in r0 Crew (KZ)
Thatskriptkid
Потому что у тебя спецификатор %d
фак, точно.
источник

F

Franky_T in r0 Crew (KZ)
Oleg
У тебя результат вычитания отрицательный
эт потому что я ваш код скопировала, не подумав)
источник

F

Franky_T in r0 Crew (KZ)
ща
источник

O

Oleg in r0 Crew (KZ)
😊 сделай 9 вместо 999 и пойдет
источник

T

Thatskriptkid in r0 Crew (KZ)
если ты сделаешь спецификатор %u то отрицательных не будет
источник