для l oop ошибок счетчик определяется в заголовочном файле - PullRequest
0 голосов
/ 16 июня 2020

Я написал простую программу, состоящую из трех файлов (main. c, libreria_mia. c, libreria_mia.h):

// main.c
#include <stdio.h>
#include "libreria_mia.h"
int main()
{
    return 0;
}




// libreria_mia.h
struct  numeri{
    int n[100];
};
int i;



// libreria_mia.c
#include "libreria_mia.h"
for (i = 0; i < 100; i++){
    numeri.n[i] = 2;
}

Компилятор выдает следующие ошибки:

libreria_mia.c:5:1: error: expected identifier or ‘(’ before ‘for’
    5 | for (i = 0; i < 100; i++){
      | ^~~
libreria_mia.c:5:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘<’ token
    5 | for (i = 0; i < 100; i++){
      |               ^
libreria_mia.c:5:23: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘++’ token
    5 | for (i = 0; i < 100; i++){
      |                       ^~

Как их исправить?

Заранее спасибо.

1 Ответ

1 голос
/ 16 июня 2020

В C / C ++ вы не можете объявлять переменные в файле заголовка.

Вы должны объявить переменные в файле C и объявить extern в файле заголовка:

Как пример:

main. c

int i;

libreria_mia.h

extern int i;

затем включите этот файл заголовка везде, где вы хотите использовать переменную i.

...