struct, funkcje i kollejność deklaracji

0

Witam,
mam pytanie, czy jest możliwe DEFINIOWANIE struktury po tym, jak zadeklarowaliśmy funkcję operującą na strukturze? Moim zdaniem, nie jest możliwe coś takiego jak poniżej - czy mógłbym prosić o jakiś w miarę wyczerpujący komentarz? Z góry dziękuję.

#include <iostream>

using namespace std;

void funkcja (TStruktura& element_struktury);

int main ()
{
    struct TStruktura
    {
    int a;

    };
  //BLOK GŁÓWNY
  TStruktura element1;
  funkcja (element1);
}
void funkcja (TStruktura& element_struktury)
{
	//operacje na strukturze
}

Pozdrawiam

L@mer

0

Komentarz jest taki... Jak w wiekszości (normalnych) języków wszelkie deklaracje widac tylko 'do góry' (poza deklaracją wskaznika do typu, ale tez z ograniczeniami) , poza tym... Nie wiem czy będzie widać wewnętrzną deklaracje z funkcji main(), czy nawet samego bloku '{}' (w szczególności funkcji) gdziekolwiek poza jej/jego wnetrzem.

0

Czyli jeśli funkcja ma operowac na typie struct TStruktura, to definicja typu TStruktura musi POPRZEDZAĆ prototyp(deklarację) funkcji - i koniec. Czyli w funkcji main nie da się zdefiniować żadnej struktury, która mogłaby być argumentem funkcji. Czy się mylę?
Dzięki za dotychczasowe wyjaśnienia
L@mer

// Nie mylisz sie, co więcej masz absolutną rację...
// Podczas kompilacji wyskoczy cos a'la 'Undefined symbol' [mf]

1 użytkowników online, w tym zalogowanych: 0, gości: 1