Czyli ma to iść coś w stylu int main ()?
http://publib.boulder.ibm.com/infocente … Fmainf.htm
Po prawdzie dla Linuksa, ale na tym “poziomie” to bez znaczenia.
Myślę i myślę, może zaraz do tego dojdę, albo nie pojmuję tego jeszcze z tego powodu, że do funkcji nie doszedłem.
Eee, ty zacząłeś czytać te wikibooks od początku? Przecież pierwszy wpis to uruchomienie hello world. Jak rozumiem jeszcze tego nie zrobiłeś? Każdy tutorial na początku traktuje main jak magię, bo nie jest potrzebna wiedza n/t funkcji ot jest to punkt startowy naszego programu, tyle nam potrzeba wiedzieć.
Zrobiłem to. Po przeczytaniu tego na Linuxa wiem, że main jest musową funkcją w C, natomiast ja dalej nie jestem rozgarnięty jak wywołać to dodaj poprzez właśnie tego main’a. Próbowałem już int main (), int main (void) i jeszcze paru, ale zawsze wyskakiwał jakiś error… Nie wiem, może ja po prostu ciemny jestem jak na razie w tym temacie.
Nazwą funkcji jest “dodaj” teraz wnioskuję, a int liczba to argument?
Może ja się już gubię, ale czy to ma być int main()?
Tak. Czy zmieniłeś projekt tak jak napisał Rolek0? Na konsolowy?
PS podawaj kod (całość) i błędy, bo ja na dobrą sprawę nie operuje szklaną kulą.
Najwyraźniej tak, bo nie erroruje mi już tego: “undefined reference to ‘WinMain@16’”… Aczkolwiek tutaj:
#include
int main()
void dodaj(int liczba)
{
int zmienna = 0;
zmienna = zmienna + liczba;
printf ("Wartosc zmiennej %d\n", zmienna);
}
Mam errory dwa:
4|error: expected '=', ',', ';', 'asm' or ' __attribute__' before '{' token
8|error: expected '{' at end of input
-
zmień projekt na konsolowy
-
porównaj swojego main i tego http://uazz.pl/index.php/podstawy/400-j … ie-funkcji
-
zobacz gdzie jest twoja funkcja, a gdzie tam jest funkcja.
Ja dopiero chyba odkrywam swoja ciemnotę pod kątem informatyki.
-
Czyli dalej mój projekt jest okienkowy, a nie konsolowy?
-
Jedyne czym się różnią to chyba miejscem.
-
Prawda, w innym miejscu.
-
Nie wiem czy go zmieniłeś, bo rzucany jest inny błąd, który może przysłaniać poprzedni. Prewencyjnie mówię, żebyś zmienił, bo twierdziłeś, że chyba to zrobiłeś, ale nie napisałeś co konkretnie. W każdym razie pozbądź się innych błędów samo wyjdzie w praniu.
-
Bingo, miejsce jest ważne. Nie możesz pisać sobie jak popadnie, bo kompilator ciebie nie zrozumie.
Do tej pory każdy main miał nawiasy wąsate
int main() {
}
Funkcja z nawiasami, była przed main’em
void dodaj(int liczba)
{
int zmienna = 0;
zmienna = zmienna + liczba;
printf ("Wartosc zmiennej %d\n", zmienna);
}
int main() {
}
A w linku, który podałem 2x jest jeszcze raz nazwa funkcji z cyferkami, tym razem wewnątrz main, i bez nawiasów wąsatych.
#include
void dodaj(int liczba)
{
int zmienna = 0;
zmienna = zmienna + liczba;
printf ("Wartosc zmiennej %d\n", zmienna);
}
int main() {
dodaj(10);
return 0;
}
Wielkie dzięki, teraz w sumie zrozumiałem o co w tym chodzi. Popełniłem błąd myśląc, że wszystko zatrybi bez tego “dodaj(3)” itp., a przecież po to była pisana funkcja void dodaj(int liczba), dobrze rozumiem?
W bardzo dużym uproszczeniu tak…
Następna rzecz… Przy rzutowaniu zauważyłem nowe “wyrazy” typu foo, cstr, str, ptr… Wydaję mi się, że wcześniej to wytłumaczone nie było. Cóż one znaczą?
Autor tutoriala po prostu nadał takie nazwy tym zmiennym.
Jak wyżej to po prostu nazwy zmiennych. Często wynika to z pewnej konwencji:
str, cstr - string/cstring czyli łańcuch znakowy
ptr - ogólnie rozumiany wskaźnik (pointer)
tu masz szersze wyjaśnienie foo, bar http://en.wikipedia.org/wiki/Foobar
Nie mniej to tylko konwencja, nic zobowiązującego (liczy się to co jest przed zmienną, czyli typ).
Dodatkowo zakładaj nowy temat, jeśli wątek odbiega od oryginalnego pytania (tego z tematu) bo robi się bałagan, który już dawno powinien zostać wydzielony, albo trafić do kosza.