Programowanie początkującego - jaki język wybrać?

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ć.

http://pl.wikibooks.org/wiki/C/Pierwszy_program

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.

http://uazz.pl/index.php/podstawy/400-j … ie-funkcji

albo tu masz dla C

Nazwą funkcji jest “dodaj” teraz wnioskuję, a int liczba to argument?

Może ja się już gubię, ale czy to ma być int main()? :cry:

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
  1. zmień projekt na konsolowy

  2. porównaj swojego main i tego http://uazz.pl/index.php/podstawy/400-j … ie-funkcji

  3. zobacz gdzie jest twoja funkcja, a gdzie tam jest funkcja.

Ja dopiero chyba odkrywam swoja ciemnotę pod kątem informatyki.

  1. Czyli dalej mój projekt jest okienkowy, a nie konsolowy?

  2. Jedyne czym się różnią to chyba miejscem.

  3. Prawda, w innym miejscu.

  1. 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.

  2. 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.