C code style & coding rules

Vse o programiranju na in za PC

Moderatorji: Kroko, tilz0R

C code style & coding rules

OdgovorNapisal/-a tilz0R » 14 Avg 2018, 16:43

Napisal sem že nekaj, bom pa zagotovo še dodal kakšen detajl k moji C style sintaxi in coding rules-om.

Ali imate vi tudi kakšna svoja pravila?

https://github.com/MaJerle/c_code_style

Edit: Zakaj tab ni tab ampak space? Vsak ima znak \t nastavljen po svoje. Ko začneš vmešavati tabe in space-e v eni vrstici, se vse podre.
Edit2: LwIP lib je inspiracija za moj C-style in coding rules s tem da sem dodatno omejil nekatere zadeve
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 1775
Pridružen: 17 Jan 2015, 23:12
Kraj: Črnomelj
Zahvalil se je: 224 krat
Prejel zahvalo: 465 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 255

Re: C code style & coding rules

OdgovorNapisal/-a VolkD » 14 Avg 2018, 17:18

Use 4 spaces per indent level
Jaz uporabljam 3.
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: 38432
Pridružen: 29 Dec 2014, 19:49
Kraj: Kačiče (Divača)
Zahvalil se je: 7821 krat
Prejel zahvalo: 4672 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: C code style & coding rules

OdgovorNapisal/-a s54mtb » 14 Avg 2018, 17:26

Sem pogledal že na githubu med novicami in lahko samo pohvalim, da je lepo zbrano na enem mestu.
Namesto "Zahvali se" sprejemam tudi šalco kofeta: https://www.buymeacoffee.com/s54mtb
Uporabniški avatar
s54mtb
 
Prispevkov: 10643
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1489 krat
Prejel zahvalo: 3695 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: C code style & coding rules

OdgovorNapisal/-a radix » 14 Avg 2018, 18:00

Jaz se skušam držati OTB.
Za indentacijo uporabljam izključno tabe, širine 4, drugi si jih pa lahko naštimajo na kakršnokoli širino. Za poravnavo uporabljam izključno presledke. Pred ogledom tuje kode indentirane s presledki, jih najprej spremenim v tabe.
Starih C-style multiline komentarjev se izogibam.
radix
 
Prispevkov: 1382
Pridružen: 04 Feb 2015, 19:19
Kraj: Ljubljana
Zahvalil se je: 218 krat
Prejel zahvalo: 333 krat
Uporabnika povabil: DusanK
Število neizkoriščenih povabil: 23

Re: C code style & coding rules

OdgovorNapisal/-a s54mtb » 14 Avg 2018, 18:06

Prosim, če pripraviš še par template-ov za function headerje za par najpogostejših primerov.

Tudi za .c in .h fajli imajo ponavadi nek header. Kaj uporabljaš tam?
Namesto "Zahvali se" sprejemam tudi šalco kofeta: https://www.buymeacoffee.com/s54mtb
Uporabniški avatar
s54mtb
 
Prispevkov: 10643
Pridružen: 15 Jan 2015, 00:10
Zahvalil se je: 1489 krat
Prejel zahvalo: 3695 krat
Uporabnika povabil: Vrtni palček
Število neizkoriščenih povabil: 255

Re: C code style & coding rules

OdgovorNapisal/-a blasny » 14 Avg 2018, 18:38

Poglej si EditorConfig za definirat (space, tab, indent, charset, etc.)
blasny
 
Prispevkov: 376
Pridružen: 18 Jan 2015, 15:48
Zahvalil se je: 283 krat
Prejel zahvalo: 104 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 13

Re: C code style & coding rules

OdgovorNapisal/-a tilz0R » 14 Avg 2018, 19:30

s54mtb je napisal/-a:Prosim, če pripraviš še par template-ov za function headerje za par najpogostejših primerov.

Tudi za .c in .h fajli imajo ponavadi nek header. Kaj uporabljaš tam?



Imam še dela okoli macrojev, pripravim pa še template za c in h datoteke.
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 1775
Pridružen: 17 Jan 2015, 23:12
Kraj: Črnomelj
Zahvalil se je: 224 krat
Prejel zahvalo: 465 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 255

Re: C code style & coding rules

OdgovorNapisal/-a tilz0R » 14 Avg 2018, 23:05

Mare, sem dodal template datoteke in še nekaj docs-ov.

radix, dokler pišeš kodo le za privat (če jo, potem lahko ignoriraš sporočilo naprej) je vse ok. Ko greš enkrat public in dovoliš contribution, potem je vse boljše, samo tab ne. Če imaš kakšno kodo na githubu, ti bom pokazal o čem govorim.
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 1775
Pridružen: 17 Jan 2015, 23:12
Kraj: Črnomelj
Zahvalil se je: 224 krat
Prejel zahvalo: 465 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 255

Re: C code style & coding rules

OdgovorNapisal/-a tilz0R » 12 Okt 2019, 06:54

Manjša posodobitev je na voljo, katera pokriva tudi makroje.
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 1775
Pridružen: 17 Jan 2015, 23:12
Kraj: Črnomelj
Zahvalil se je: 224 krat
Prejel zahvalo: 465 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 255

Re: C code style & coding rules

OdgovorNapisal/-a PrimozL » 14 Okt 2019, 17:50

tilz0R je napisal/-a:Ali imate vi tudi kakšna svoja pravila?
https://github.com/MaJerle/c_code_style


Mi je všeč, da si zbral vse na enem mestu. Zanima me, kako to, da si se odločil za "Comments starting with // are not allowed."? Meni so všeč ravno // komentarji, ker lahko potem z "/* ... */" zakomentiram med razhroščevanjem en cel del kode, če je treba.
Sicer pa si vsak naredi malo svoj stil. Predvsem je važno, da se ga vedno držiš.
PrimozL
 
Prispevkov: 300
Pridružen: 19 Jan 2015, 01:49
Kraj: Okolica Vipave
Zahvalil se je: 56 krat
Prejel zahvalo: 84 krat
Uporabnika povabil: VolkD
Število neizkoriščenih povabil: 19

Re: C code style & coding rules

OdgovorNapisal/-a tilz0R » 15 Okt 2019, 07:19

PrimozL je napisal/-a:Zanima me, kako to, da si se odločil za "Comments starting with // are not allowed."? Meni so všeč ravno // komentarji, ker lahko potem z "/* ... */" zakomentiram med razhroščevanjem en cel del kode, če je treba.

Problem, ki sem ga opazil pri komentarjih // je, da kadar imaš preprocessorski ukaz, ki ima več vrstic, lahko prevajalnik to narobe interpretira. Oz. interpretira pravilno, saj moraš uporabiti znak \ za skok v novo vrstico in s tem podaljšaš komentar. Recimo spodnja koda lahko povzroči težave
Koda: Izberi vse
#define MY_MULTI_LINE_MACRO(x)  do {\
   if (a) { //Check if a \
    //blabla \
   }\
while (0)

To je načeloma prekopirano v
Koda: Izberi vse
do { if (a) { //Check if a //blabla } } while (0)

Kaj je zdej komentar in kaj koda? :D

Drugače pa za komentiranje večjega števila kode (temporary), uporabim feature večine IDE-jev, označiš več vrstic, in vklopiš komentar mode, in pred vsako vrstico naredi //.
Druga opcija je pa #if 0 in pa #endif.

A kot si rekel, vsak se drži svojega in važno je, da je konsistenten.
Knowledge sharing is people' caring., T. MAJERLE
Uporabniški avatar
tilz0R
 
Prispevkov: 1775
Pridružen: 17 Jan 2015, 23:12
Kraj: Črnomelj
Zahvalil se je: 224 krat
Prejel zahvalo: 465 krat
Uporabnika povabil: s56rga
Število neizkoriščenih povabil: 255

Re: C code style & coding rules

OdgovorNapisal/-a urosg » 15 Okt 2019, 08:50

@tilz0R: asterix (https://en.wikipedia.org/wiki/Asterix) != asterisk (https://en.wikipedia.org/wiki/Asterisk)

Drugace se pa strinjam z vecino napisanih pravil.

Uporabljam pa osebno TABe za indenting nastavljene na 4 znake.
Uporabniški avatar
urosg
 
Prispevkov: 335
Pridružen: 10 Feb 2015, 13:38
Kraj: Domžale, Mengeš, Kamnik
Zahvalil se je: 11 krat
Prejel zahvalo: 31 krat
Uporabnika povabil: mucek
Število neizkoriščenih povabil: 3


Vrni se na Programski jeziki

Kdo je na strani

Po forumu brska: 0 registriranih uporabnikov in 0 gostov