Portál AbcLinuxu, 2. května 2025 05:42
break
tato verze C už umí. Jak v cyklech, tak ve switchi
Absolutně se nepočítalo s tím, že by C mohlo kdy chodit na něčem menším, než jsou 32bitové procesory. I proto se univerzální int považovalo za absolutně dostatečné pro všechno.Kdyby tak Ritchie umel cist z hvezd, ... a vedel, kde se C bude pouzivat za 40 nebo 50 let. Jeden z duvodu, proc se dostalo C takove uspechu a pouziva se dodnes, je, ze bylo navrzeno jako nastroj, ktery mel resit konkretni problem (implementaci unixu) a ne jako univerzalni reseni vsech problemu.
printArgs(var1, var2, var3) { printff("args: %d %d %d\n", var1, var2, var3); } main(argc, argv) int argv[]; { printArgs(1); }vypíše
args: 1 0 16402
Jen hádám, že prostě v rámci funkce brali argumenty přímo z paměti relativně k vrcholu SP a uklid zásobníku se staral ten, kdo prováděl volání.
%rdi
, %rsi
, %rdx
, %rcx
, %r8
, %r9
). Ale i pak pořád platí, že pokud volající předá víc parametrů, než si volaný myslí, že jich má být, bude to stejně fungovat (pokud souhlasí typy).
or EOF on end of file or errorKaždopádně rozumíme si. Prostě víc stavů než 256.
signed short
(o kterém se píše v komentáři, na který jste odpovídal) pro reprezentaci 257 různých hodnot nestačil.
signed short
16 bitů, což na 257 různých hodnot bohatě stačí. Zato na příklad nějaké, kde by měl 8 bitů, vzpomínám marně. (Ale možná se nějaká taková kdysí dávno opravdu používala.)
Tady osobní zkušeností posloužit nemohu, ale Kernighan a Ritchie ve své knize uvádějí, že to bylo… 16 bitů. A ani na žádném dalším systému, které uvádějí jako příklad v téže tabulce (Honeywell 6000, IBM 370, Interdata 8/32), nemá short
méně než 16 bitů - a už vůbec ne tak málo, aby nestačil k zápisu 257 různých hodnot. (Abychom byli úplně přesní: na Honeywell 6000 má char
9 bitů - ale short
36, takže pořád ostře větší.)
Takže se zeptám přímo: víte vy o nějaké reálně používané platformě, kde by měl datový typ short
(resp. signed short
) méně než 9 bitů?
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.