Diskuze: jazyk C/C++ - nizko/vysokourovnovost jazyka
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 10 zpráv z 10.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
Nie je tu spominany c a c++, ale len c.
Wiki o tom pise:
https://cs.m.wikipedia.org/…movací_jazyk
Vysokoúrovňovost se podle mě odvíjí od toho, jaké možnosti co se týče implementačních detailů (správa paměti, vkládání Assembleru, svázanost s architekturou) ti daný jazyk dovolí řešit (popřípadě tě k tomu donutí). Z tohoto pohledu je C nízkoúrovňový oproti jiným dnes mnohem více používaným jazykům. Jistě, proti Assembleru je vysokoúrovňový, ale toto hledisko je pro drtivou většinu lidí nezajímavé, neb v Assembleru nedělají.
I když se postavíš na hlavu, tak kód v C bude vypadat pořád "ošklivěji" (popř. bude delší) než v jazyku podporujícím např. konstrukty OOP. U C++ sice tyto konstrukty máš, na druhou stranu ti dovoluje věci, které v jazycích vyšší úrovně tak nějak nemáš (myslím hlavně šablony) – pořád můžeš rozhodovat o spoustě implementačních detailů (a obvykle se tomu úplně nevyhneš).
Já si troufám tvrdit, že C je nízkoúrovňový. Ano, dříve (v dobách ASM, Fortratu atd) byl považován za jazyk vysokoůrovňový, ale z dnešního pohledu je nízkoúrovňový. Není už sice závislý na platformně (i když, stejný program zpravidla nespustíš pod Win a Linuxem), ale stále ti dovoluje šahat přímo na konkrétní paměti, což dovoluje registraci syscallů a další věci. Co se C++ týče, přeci jen je blízce spjatý z C, všechno z C funguje v C++ a každý program v C++ by měl jít (po hoodně velké modifikaci) překlopit do C. Někde jsem viděl krásnou větu, že C++ je "low-level programming language with features of hight-level languages", což se mi líbí a asi bych to neřekl jinak.
popravde rovnaky program spustis pod Linuxom, aj Windowsom, ale prelozeny kod
uz nie je platformovo nezavisly a myslim, ze pomocou direktiv linkera sa vyberie
ta spravna kniznica pre danu aplikaciu,
cize pre kazdu jednu platformu ti uplne staci iba jeden, jediny kod, ci to je
Linuxoch, Windows, alebo system zalozeny na ARM, x86, m68k,...
po precitani komentarov, tak jazyk C/C++ by sa nedal nazvat cistym nizkourovnovym jazykom, tym je strojovy kod, resp.assembler, ale jazykom s urovnou medzi strojovym kodom a jazykmi ako napr. PHP, Perl, Java, kde uz nizkourovnovy kod odpada
Assembler není strojový kód.
assember je jazyk symbolickych instrukcii a ku kazdej instrukcii v assembleri
je priradeny kod instrukcie
cize je to uz uroven strojoveho kodu
int main(int argc, char** argv) {
return (EXIT_SUCCESS);
}int a;
a = 8;
printf("%d", a);
ahoj pořád nevim co tam mám špatně delám to přesně podle návodu
a jak to souvisí s tématem?
int main(int argc, char** argv)
{
int a = 8;
printf("%d", a);
return (EXIT_SUCCESS);
}
Treba si uvedomiť, že main() je hlavná (vykonávacia) funkcia a všetko
čo sa má vykonať je napísané v jej tele.
Buď tam dáš kompletný kód, alebo tam voláš funkcie napísané mimo
main().
Príklad funkcie mimo main()
void vypis(int cislo) {
printf("%d", cislo);
}
int main(int argc, char** argv) {
int a = 8;
vypis(a); // volanie funkcie
return (EXIT_SUCCESS);
}
Zobrazeno 10 zpráv z 10.
