Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - x14

Stran: [1] 2 3 ... 13
1
Software / Re:Nesprávné fonty v PDF souboru
« kdy: 08. 02. 2019, 18:29:08 »
Pokud chce mít autor jistotu, že vzhled bude identický, tak je prostě vložit musí.
Je možné vložit pouze použitá písmenka a celé se to pakuje zipem.
Pokud tam nebyly obrázky, jen text, tak 7MB už je docela onanie :) Nicméně já bych si toho v mailu určitě nevšiml.

2
Software / Re:Nesprávné fonty v PDF souboru
« kdy: 08. 02. 2019, 15:45:40 »
Správně vygenerované PDF v sobě má všechny použité fonty - pak musí fungovat všude.
Tohle v sobě ty fonty evidentně nemá  :(
Máš ty zmíněné msttcorefonts?

3
Software / Re:Oprava HDD poškozeného GParted
« kdy: 22. 11. 2018, 22:55:45 »
GParted už jsem několikrát použil tímto způsobem – nikdy neselhal, ale vždy to trvalo k***vsky dlouho.
Hlavně se to nesmí přerušit, jinak to dopadne blbě.

4
Software / Re:Hdd poskodeny gparted.
« kdy: 22. 11. 2018, 19:19:15 »
Obnov data ze zálohy  ;D ;D ;D

5
Vývoj / Re:C nebo Rust?
« kdy: 11. 09. 2018, 16:07:39 »
C? Ani náhodou! Když už tak C++.

6
Vývoj / Re:Old C++ VS C++11, 14, 17
« kdy: 04. 09. 2018, 14:05:33 »
Moderní C++ znamená, že jsem si v týmu prakticky zakázali new/delete.
Z boostu používám snad už jen wformat, jinak se držím STL.

7
Vývoj / Re:Jak můžu opustit funkci
« kdy: 17. 07. 2018, 12:52:31 »
Ok, takže znovu: Prosím vás, už nekrmte ty trolly.

8
Vývoj / Re:Jak můžu opustit funkci
« kdy: 16. 07. 2018, 16:05:45 »
Ok, takže znovu: Prosím vás, už nekrmte ty trolly.

Proč? Je to sranda, Jirsák jim docela dává :D
Jeho práci většinou oceňuji, ale ne v tomto případě. Zde je to zbytečné. Opakuji, je to zbytečné.
Jen se tak dostává více prostoru nekonečným blábolům o programování ve stavu nejhorší nouze.
Doufám, že to nečte původní tazatel, jinak se programovat nikdy nenaučí.

9
Vývoj / Re:Jak můžu opustit funkci
« kdy: 16. 07. 2018, 15:44:19 »
Ok, takže znovu: Prosím vás, už nekrmte ty trolly.

10
Vývoj / Re:Jak můžu opustit funkci
« kdy: 16. 07. 2018, 15:08:17 »
Bože už zas?
Použití break, continue, goto a return je v C naprosto normální!
Prosim vás, už nekrmete ty trolly.

11
Vývoj / Re:Jak můžu opustit funkci
« kdy: 14. 07. 2018, 00:08:26 »
Tou korektnostou myslim to, ze program nespracuva zle vstupy, ale proste ich zahodi. (pripadne sa zjebe pri zlych vstupoch, to je ten horsi pripad)
Znělo to tak honosně a přitom jde jen o část zadání úlohy. Ovšem pokud je to postaveno vedle robustnosti programu (která je pro slušný program bezpodmínečná), tak je jasné, jak autor myslel "veci ako break, continue, goto by sa mali pouzivat v stave najhorsej nudze".

12
Vývoj / Re:Jak můžu opustit funkci
« kdy: 13. 07. 2018, 15:48:22 »
Nebylo by vhodnější to makro pojmenovat assert?
To by určitě nebylo, když to není assert. Nápověda: assert se v release kódu odstraňuje.

13
Vývoj / Re:Jak můžu opustit funkci
« kdy: 13. 07. 2018, 15:43:41 »
K čemu je dobré na začátku nulovat proměnné?
Přece abych za exitusem nevolal free(mem) na náhodou adresu, nezavíral soubor, k jehož otevření nikdy nedošlo...

14
Vývoj / Re:Jak můžu opustit funkci
« kdy: 13. 07. 2018, 14:14:49 »
Já jsem tak rád, že nemusím dělat v C. V C++ dělám vše 100 % RAII a utéct z funkce můžu kdykoliv - uklízí destruktory.

V C jsem většinou dopadl tak, že jsem na začátku měl vynulované všechny proměnné a jednu stavovou proměnnou (často jen bool success=true) a kousek před koncem funkce label se jménem exitus, na který jsem skákal při předčasném ukončení. A za ním už byly jen samé delete, free, closehande, closefile...

Bylo to přehledné a bránilo to opomenutí v případě nečekaného selhání. Jiné goto než goto exitus jsem nikdy nepoužil a tento skok v naprosté většině případů znamenal chybu.
A zdroják pak byl čistě takto:
Kód: [Vybrat]
mem = alloc(...);
if(!mem)
{
     succes = false;
     goto exitus;
}

15
Vývoj / Re:Jak můžu opustit funkci
« kdy: 13. 07. 2018, 12:49:15 »
Chybí tomu větve "else" s ošetřením chyb, které budou nejspíš úplně vespod, aby je nikdo nenašel.

Nechybí. To může být na vyšší úrovni. Třeba zrovna včera jsem dělal ovladač HW, který běží ve vlastním vlákně a init vypadal (zjednodušeně) asi takhle:
Kód: [Vybrat]
error_t initDriver(struct params* params) {
  // Parametry jsou povinne
  if(!assigned(params)) return ERR_INVALID_PARAMS;

  // Potrebujeme frontu pro komunikaci
  queue = queueCreate(dataType, size);
  if(!assigned(queue)) {
     releaseMem();
     return ERR_OUT_OF_MEMORY;
  }
 
  // Potrebujeme mutex pro zamykani HW
  mutex = mutexCreate();
  if(!assigned(mutex)) {
     releaseMem();
     return ERR_OUT_OF_MEMORY;
  }

  // Init zeleza
  if(!hwInit()) return ERROR_HARDWARE;

  // Ted muzeme udelat vlakno pro obsluhu
  threadHandle = threadCreate(funkce, priorita, stack);
  if(!assigned(threadHandle)) {
     releaseMem();
     return ERR_OUT_OF_MEMORY;
  }

  // Init
  ...
  // Hotovo
  return ERROR_NONE;
}

Víš, jaký by to byl binec Balkiho stylem? A opravdu by nestačil jeden return, protože v tomhle se i jednoduše zaručí, že pokud není paměť, nebude se pokoušet tvořit další objekty...

Nechybí ti tam náhodou releaseMem() ve větvi if(!hwInit()) ?
BTW: Ten mutex, thread a queue není třeba uklízet?

Stran: [1] 2 3 ... 13