Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++] Funkcja main nie jest wykonywana jako pierwsza

Ostatnio zmodyfikowano 2012-11-07 13:15
Autor Wiadomość
jAngermann
Temat założony przez niniejszego użytkownika
[C++] Funkcja main nie jest wykonywana jako pierwsza
» 2012-11-05 22:11:33
Z tego co pamiętam, to program powinien zawsze zaczynać od funkcji main, jednakże w tym kodzie (przykładowy kod z Lekcji o funkcjach), funkcja void moja_funkcja jest wykonywana jako pierwsza.
C/C++
#include <iostream>
void moja_funkcja()
{
    std::cout << "[1] - dodawanie" << std::endl;
    std::cout << "[2] - odejmowanie" << std::endl;
    std::cout << "[0] - wyjscie z programu" << std::endl;
}

void dodawanie()
{
    std::cout << "Jeszcze nie oprogramowano" << std::endl;
}

void odejmowanie()
{
    dodawanie();
}

int main()
{
    std::cout << "W programie sa dostepne nastepujace opcje:" << std::endl;
    moja_funkcja();
    std::cout << "Zycze przyjemnego korzystania z programu" << std::endl << std::endl;
    int liczba;
    do
    {
        moja_funkcja();
        std::cin >> liczba;
        switch( liczba )
        {
        case 1:
            dodawanie();
            break;
        case 2:
            odejmowanie();
            break;
            default:
            break;
        } //switch
    } while( liczba != 0 );
   
    return 0;
}
P-68581
cyklopek11
» 2012-11-05 22:19:07
Jest zdefiniowana jako pierwsza (globalnie) a wywoływana w funkcji main().
P-68582
jAngermann
Temat założony przez niniejszego użytkownika
» 2012-11-05 22:28:02
Chodzi mi o to, że taki pseudokod

void xx()
{
   *wyswietl a*
}
int main()
{
   *wyswietl b*
}
wyświetliłby a potem b, nawet jeśli funkcja void xx nigdzie nie została wywołana.
P-68584
ison
» 2012-11-05 22:33:13
Sprawdzałeś czy strzelasz, że tak jest?
P-68586
cyklopek11
» 2012-11-05 22:38:06
Po pierwsze kod wstawiaj w znacznikach.
Po drugie w uproszczeniu, wykonywanie kodu napisanego w C/C++ zaczyna się od funkcji main() (wcześniej jest tylko biblioteka uruchomieniowa C/C++ ale to tylko info jak bawisz się asemblerem dodatkowo).
Masz błędy w kodzie:
- brak średników
- *wyswietl a* nie ma takiego czegoś w języku C/C++
Po trzecie nie można wywołać funkcji przed funkcją main() (znowu z zastrzeżeniem pkt. 2)
Po czwarte funkcja jest wywoływana gdy jej nazwę piszemy w kodzie z nawiasami (z ewentualnymi argumentami wywołania).
Po piąte radzę przeczytać jeszcze raz kurs c++ - funkcje.
P-68587
jAngermann
Temat założony przez niniejszego użytkownika
» 2012-11-05 23:00:17
Tak, ison, sprawdzałem.
cycklopek11, to pseudokod.
I wiem że "wykonywanie kodu napisanego w C/C++ zaczyna się od funkcji main()", dlatego pytam się, jak to możliwe że inna funkcja wykonuję się przed funkcją main().

Dodam też że używam Code::Blocks (według zaleceń kursu) i sprawdzałem Dev-C++ i na nim normalnie wykonuję się od funkcji main().
P-68590
cyklopek11
» 2012-11-05 23:03:42
Pokaż dowód gdzie jakaś funkcja się wykonuje przed main().
P-68591
DejaVu
» 2012-11-05 23:03:53
Nie ma takiej możliwości, aby w przedstawionym kodzie wywołało się cokolwiek innego przed funkcją main.
P-68592
« 1 » 2 3
  Strona 1 z 3 Następna strona