Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
OndraSej

Založen: 28. 07. 2007 Příspěvky: 767 Bydliště: Brandýs nad Labem
|
Zaslal: 29. říjen 2017, 11:41:22 Předmět: |
|
|
- nejsem si jistý, nakolik má smysl překládat technické výrazy, když stejně většina dokumentace je v angličtině a pak člověk musí při čtení ještě navíc mapovat výrazy z jednoho jazyka do druhého.
- pokud u nějaké hodnoty záleží na konkrétním typu (protože ho vyžaduje specifikace nějakého binárního formátu), je [u]int_XY podle mě nejlepší volba. Pokud konkrétní typ není nutný (např. pro většinu for cyklů), používám buď int nebo int64_t (pokud 32 bitů nestačí). Pro poly bytů používám buď uint8_t (když mám na výběr), nebo char (pokud ho vyžaduje nějaké API).
- specifikace sice neříká, že char má 8 bitů, ale dost by mě překvapilo, kdyby to tak v nějakém překladači nebylo, protože by si tím autoři koledovali o zbytečné problémy se špatně napsaným software. Možná s výjimkou nějakých jednočipů, ale i tam by mě to spíš překvapilo.
- vyzkoušeno na aktuálním OS X/XCode: CHAR_BIT je pořád 8. Pro znakové sady s víc bity tu máme wchar_t (standard ve Win32 API). Na druhou stranu, utf-8 (standard na webu) je 8-bitové kódování, tj. opět ne-8-bitový char by znamenal jen zbytečné potíže.
- v moderním C++ klasická C-style pole opodstatnění nemají, pokud nepíšeš vlastní implementaci STL. Pro staticky alokované pole je tu std::array, pro dynamicky alokované std::vector. Pro předávání bloku paměti jako argument absl::Span (nebo podobný wrapper). C pole jsou pro masochisty a lidi pracující s legacy kódem. _________________ http://trionteam.net |
|
Návrat nahoru |
|
 |
mar
Založen: 16. 06. 2012 Příspěvky: 610
|
Zaslal: 29. říjen 2017, 11:45:08 Předmět: |
|
|
evonox napsal: |
[*]Z dob jazyka C se táhne zvyklost používání datového typu char pro binární buffery. Vzhledem k tomu, že jsem se někde na StackOverflow ale dočetl, že char je na MacOS už dva byty |
Můžu se zeptat na link, kde ses to dočetl?! Nepřijde mi to pravděpodobné (a rozbilo by to spoustu C programů a ABI, OSX je založený na BSD a tam to bude prolezlé na spoustě míst).
Java má char 2 byty, používá UCS-2 nebo UTF-16. Z mého pohledu nejlepší řešení je multibyte kódování a UTF-8.
Já vím jenom o tom, že char je na některých platformách unsigned a že wchar_t je na Unixech 4 byty a na Windows 2.
Co se týká češtiny, asi bych to nepřeháněl. U takto specializovaných výrazů nemusí existovat ekvivalent a pokud nechceš vymýšlet nové pojmy,
kterým budeš rozumět jenom ty, tak bych to asi neřešil, nejsme ve Francii. |
|
Návrat nahoru |
|
 |
evonox
Založen: 08. 03. 2013 Příspěvky: 12
|
Zaslal: 29. říjen 2017, 19:07:00 Předmět: |
|
|
Tak ono je to s tím charem ještě trochu jinak a už tomu rozumím. O MacOS jsem to nedohledal, ale v podstatě tento článek by k tomu měl poskytnout vhled: http://www.embecosm.com/2017/04/18/non-8-bit-char-support-in-clang-and-llvm/.
Ve stručnosti:
- Za prvé standard C++ nikde nezaručuje, že char je 8 bitů. Velikost char je implementation-defined.
- Za druhé v odkazu je, že char by měl být the minimum addressable unit, u PC platforem stále 8-bit. Akorát není v tom žádná záruka, jen to je nepsaná konvence zatím. Proto ty buffery pomocí char by měli být O.K. přenositelné a uint8_t by fungovalo jen u platforem s minimální adresovatelnou jednotkou velikosti 8-bitů.
- Ve článku je sice zmiňován standard C, ale myslím, že můžeme usoudit, že v případě C++ to může být obdobné.
_________________ Evonox |
|
Návrat nahoru |
|
 |
]semo[

Založen: 29. 07. 2007 Příspěvky: 1526 Bydliště: Telč
|
Zaslal: 21. prosinec 2017, 08:39:44 Předmět: |
|
|
Jak pokračuješ? Nezanevřel si na to? Byla by to škoda. _________________ Kdo jede na tygru, nesmí sesednout.
---
http://www.inventurakrajiny.cz/sipka/
Aquadelic GT, Mafia II, simulátory |
|
Návrat nahoru |
|
 |
evonox
Založen: 08. 03. 2013 Příspěvky: 12
|
Zaslal: 21. prosinec 2017, 17:17:50 Předmět: |
|
|
Ne ne, opravdu nezanevřel. Jen je to tak rozsáhlý kus práce, že se musí počítat s tím, že to bude vznikat postupně v různých periodách.
Momentálně jsem zaměřil síly na vývoj jednoho jiného nástroje pro podporu výuky programování, který pak časem také představím na Českých hrách, ale mluviti stříbro, mlčeti zlato .
Momentálně Vánoce asi budu trávit nad UML modely v Enterprise Architectu zmíněného produktu. Možná sem tam nějaký článek napíšu, ale opravdu pozvolna. _________________ Evonox |
|
Návrat nahoru |
|
 |
|