Existing answers have already examined the root of the problem: this cycle for
for (int interval = 1, snr_db = 20.0; [...]; [...]) {
declares two type variables int, one of which has the shadow of the double snr_dbouter region. For a deeper understanding, add some background.
From N1570 (last draft for C11) , ยง6.8.5.3 p1 :
Statement
for ( -1 ; -2 ; -3 ) statement
: expression-2 , . -3 void . -1 , , , , ; . -1 , void .
, for, -1 , . . , .
, , , - . for. -1 void, , . , :
[...]
int interval;
for (interval = 1, snr_db = 20.0; [...]; [...]) {
-1 , ( ). , interval .
, , , , :
for (int interval = (snr_db = 20.0), 1; [...]; [...]) {
interval, , snr_db = 20.0, 1 ( ) interval. C, , , . , , .
interval -1 snr_db :
snr_db = 20.0;
for (int interval = 1; [...]; [...]) {