String - C jezik

Moderator: tilz0R

Re: String - C jezik

OdgovorNapisal/-a VolkD » 24 Sep 2015, 14:30

Kroko je napisal/-a:Kakšen bi bil interes, da pripravim online "malo šolo" C-ja?
Po moje kar velik.
Kaj si mislil pod ON line ? Tu na forumu v obliki postov ali preko vox sistema?
Dokler bodo ljudje mislili, da živali ne čutijo bolečine, bodo živali čutile, da ljudje ne mislijowww.S5tech.net
Uporabniški avatar
VolkD
Administratorji strani
 
Prispevkov: 68037
Pridružen: 29 Dec 2014, 20:49
Kraj: Kačiče (Divača)
Zahvalil se je: 20949 krat
Prejel zahvalo: 10681 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: String - C jezik

OdgovorNapisal/-a Kroko » 24 Sep 2015, 15:02

Tu na forumu. Imel bi temo, ki bi bila zaklenjena za ostale. Na koncu bi se zbralo in pripravilo še za revijo.
Druga tema pa bi bila za pogovor.

Zamislil sem si tako, da bi za vsako poglavje napisal nekaj teorije in dal naloge oz. primere, ki bi jih slušatelji potem naredili doma.

Garantiram, da bodo "pridni" na koncu obvladali C.
http://www.planet-cnc.com Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 6153
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 770 krat
Prejel zahvalo: 2445 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: String - C jezik

OdgovorNapisal/-a jure94 » 24 Sep 2015, 18:55

Če se boš tega lotil bom sigurno prebiral :).
Upam pa, da bo tudi kakšen del glede pointerjev in pa kakšna bolj podrobna razlaga glede upravljanja s spominom. Sploh glede tega drugega vem bolj malo, pa bi se naučil.
Uporabniški avatar
jure94
 
Prispevkov: 990
Pridružen: 18 Jan 2015, 01:33
Kraj: Ljubljana
Zahvalil se je: 49 krat
Prejel zahvalo: 116 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 11

Re: String - C jezik

OdgovorNapisal/-a Kroko » 24 Sep 2015, 19:48

Seveda bo tudi glede pointerjev. Pointerji so bistvo C-ja.

Takole nekako sem si naredil osnutek. Seveda ni zacementiran. Sem prepričan, da sem veliko izpustil. Tudi vrstni red bo verjetno drugačen.

  • Zgodovina C-ja
  • Lastnosti C-ja
  • Moj prvi C program
  • Okolje (compiler in linker)
  • Tipi
  • Spremenljivke
  • Konstante
  • Operatorji
  • Izrazi
  • Pogojni stavki
  • Zanke
  • Funkcije
  • Obseg
  • Nizi
  • Kazalci
  • Stringi
  • Strukture
  • Unije
  • Typedef
  • Preprocessor
  • Header datoteke
  • Napake
  • Delo z datotekami
  • Rekurzija
  • Spomin
http://www.planet-cnc.com Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 6153
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 770 krat
Prejel zahvalo: 2445 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: String - C jezik

OdgovorNapisal/-a peterp » 24 Sep 2015, 21:07

Predlagam, da se na podlagi odziva s foruma predavanje sproti dopolnjuje. No, ne v nedogled, pač pa ko poteka debata o točno določeni stvari.
peterp
 
Prispevkov: 1179
Pridružen: 23 Feb 2015, 14:52
Kraj: Maribor okolica
Zahvalil se je: 392 krat
Prejel zahvalo: 243 krat
Uporabnika povabil: gumby
Število neizkoriščenih povabil: 247

Re: String - C jezik

OdgovorNapisal/-a gumby » 25 Sep 2015, 00:40

Mogoče bi dodal še specifične stvari za mikrokrmilnike (prekinitve, mapiranje registrov, pomnilnika, itd) ?

aja... pa makroje (ali bo to v preprocesorju zajeto?)
my brain hurts
Uporabniški avatar
gumby
 
Prispevkov: 2858
Pridružen: 14 Jan 2015, 19:49
Kraj: Lendava
Zahvalil se je: 123 krat
Prejel zahvalo: 786 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 80

Re: String - C jezik

OdgovorNapisal/-a Kroko » 25 Sep 2015, 00:51

C za mikrokrmilnike ni nič specifičen. Je povsem enak tako za mikrokontrolerje kot za Linux-e in Winse. Še standardiziran je od jeta 1989 naprej. Specifična je platforma, ki ima vsaka svoje posebnosti. Namen te male šole je, da se naučimo C neodvisno od platforme.
Če bomo to znali bomo imeli manj problemov ko bomo študirali posebnosti platforme pa naj bo to kateri od mikrokontrolerjev, linux, windows, android, mac,... Prav verjetno bo temu sledila kakšna bolj specifična stvar za konkreten mikrokontroler ampak pojdimo po vrsti.

Makroji bodo tudi razloženi ko bomo govorili o preprocesorju.
http://www.planet-cnc.com Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 6153
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 770 krat
Prejel zahvalo: 2445 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: String - C jezik

OdgovorNapisal/-a TilenS » 25 Sep 2015, 01:19

No razlike v sami impementaciji C-ja med posameznimi družinami procesorjev so lahko kar velike, vsaj v smislu kaj neka vrstica C kode naredi v samih strojnih ukazih. Kompilerji se med seboj seveda razlikujejo in prav tako se razlikuje impementacija v strojni kodi za vsako družino procesorja. Sicer ni to nič novega ampak te stvari se lahko poznajo tudi v samem delovanju.

Primer je recimo že tole.

void do_something()
{
int a;
}

Večina C kompiler-jev bo to varijablo verjetno spravila v stack ampak recimo za primer C51 kompiler stacka sploh ne uporablja za lokalne varijable, kar je vsaj za mene dokaj pomemben podatek. Zadevo najprej poizkuša spraviti v procesorske registre in šele ko so ti zasedni jih shrani v fiksne lokacije v RAM-u (namesto stack-a uporablja t.i. "compile-time stack", ki je v bistvu memory overlay).

In še veliko je specifik kot je recimo izvedba SWITCH (kaj se recimo naredi, če CASE-i niso razporejni lepo po vrsti) in podobnih zadev. Ampak kot si rekel ni to tema tega tečaja. Potem ko se odločiš za neko družino procesorja se je za resne aplikacije tako ali tako zelo priporočljivo poglobit v samo strojno delovanje.

Jaz sem se nekako skupaj z C učil tudi ASM in mi ni žal, niti minute, ki sem jo porabil za ASM. Čisto drugače gledaš na celotni program, ko enkrat veš kakšno strojno kodo naredi neka vrstica v C-ju.
TilenS
 
Prispevkov: 379
Pridružen: 05 Feb 2015, 00:40
Zahvalil se je: 0 krat
Prejel zahvalo: 61 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 12

Re: String - C jezik

OdgovorNapisal/-a Kroko » 25 Sep 2015, 08:17

To so stvari prevajalnika in ne samega jezika. Ko se odločiš za platformo (mikrokontroler) je te stvari dobro vedeti.

Jaz sem se asm naučil pred C-jem. Na C sem šel, ko so moji programi postali prekompleksni da bi jih lahko še obvladoval v asm-ju.
http://www.planet-cnc.com Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 6153
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 770 krat
Prejel zahvalo: 2445 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: String - C jezik

OdgovorNapisal/-a tomazp » 25 Sep 2015, 08:46

Zadeva je definitivno zelo dobrodošla.
tomazp
 
Prispevkov: 753
Pridružen: 19 Jan 2015, 10:14
Kraj: Ljubljana
Zahvalil se je: 149 krat
Prejel zahvalo: 257 krat
Uporabnika povabil: Zeci
Število neizkoriščenih povabil: 53

Re: String - C jezik

OdgovorNapisal/-a Kroko » 25 Sep 2015, 09:06

Če je kdo spregledal smo že začeli.
viewtopic.php?f=17&t=3075
http://www.planet-cnc.com Kroko was here!
Uporabniški avatar
Kroko
 
Prispevkov: 6153
Pridružen: 14 Jan 2015, 12:12
Kraj: Ljubljana
Zahvalil se je: 770 krat
Prejel zahvalo: 2445 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Prejšnja

Vrni se na C in sorodni jeziki

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 1 gost