3 svar
57 visningar
I am Me är nöjd med hjälpen
I am Me 679
Postad: 16 okt 2022 07:38

Varför kompilatorn ger varning när jag skriver "int t1, t2 ??

#include <stdio.h>
#define SIZE 5

int main (void) {
int t1, t2;                  Varför kompilatorn ger varning när jag skriver denna raden??

int t1[SIZE] = {1, 2, 4, 5, 6,};
int t2[SIZE] = {0, 3, 4, 1, 9};
int res[SIZE]; 

for ( int i = 0; i < 5; i++)
{
    res[i] = t1[i] + t2[i];
   
    printf("res[%d] = %d \n" i, res[i]);
}


}

 

Den säger:

 

ov6-6.c: In function 'main':
ov6-6.c:7:6: error: conflicting types for 't1'
7 | int t1[SIZE] = {1, 2, 4, 5, 6,};
| ^~
ov6-6.c:5:6: note: previous declaration of 't1' was here
5 | int t1, t2;
| ^~
ov6-6.c:8:6: error: conflicting types for 't2'
8 | int t2[SIZE] = {0, 3, 4, 1, 9};
| ^~
ov6-6.c:5:10: note: previous declaration of 't2' was here
5 | int t1, t2;
| ^~

anders_k 234
Postad: 16 okt 2022 08:20

Du har deklarerat samma variabler två ggr.

Dels som vanlig int

och dels int arrays

I am Me 679
Postad: 16 okt 2022 08:49

Aha ok!

Så int t1, t2; betyder att t1 och t2 har typen heltal. Medans int t1[] och int t2[] säger att fälterna t1 samt t2 är av typen int

Eller?

Bubo 6975
Postad: 16 okt 2022 12:50

Elementen i arrayen (fältet?) är av typen int, ja.

Lägg märke till att kompilatorn klagar på rad 6, inte på rad 5 som du har skrivit. 

Svara Avbryt
Close