31
/dev/null / Re:Rozdíl mezi herními vývojáři v ČR a SR
« kdy: 26. 11. 2019, 15:47:01 »
Máte pravdu, je to hloupá a nedomyšlená otázka. Poprosím o vymazání vlákna.
nm
nm
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.
pole[i] = ++i; i = 0;
pole[i++] = ++i; /* JAK SE VYHODNOTI TENTO PRIKAZ? */
#include <stdio.h>
#include "test.h"
#define MAX 5
int main()
{
int pole[MAX];
int i, k;
/* vynuluj pole[] */
for(k = 0; k < MAX; ++k)
pole[k] = 0;
i = 0;
pole[i++] = ++i; /* JAK SE VYHODNOTI TENTO PRIKAZ? */
/* vypis vysledek */
printf("i = %d\n", i);
for(k = 0; k < MAX; ++k)
printf("pole[%d] = %d\n", k, pole[k]);
}
Udelej prosim neco pro lidstvo a inzerat smaz, knihu spal.
To je ta kniha tak špatná? Od PHP 5.1 se toho zas tak moc nezměnilo.
Kdyz tedy pouziji goto uvnitr nejakeho bloku kodu a vyskocim z tohoto bloku, povazuje prekladac zmineny blok kodu (ze ktereho jsem vyskocil) za ukonceny? Nebo ho nechava nejak otevreny? Viz tento priklad:Kód: [Vybrat]int i, j;
for(i = 0; i < 10; ++i) {
for(j = 0; j < 20; ++j) {
if(j == 5)
goto vylez_z_cyklu;
}
}
vylez_z_cyklu: printf("j je rovno %d\n", j);
Co vám brání si to zkompilovat a pak to disasseblovat, aby jste viděl, jak to dopadlo?
Tak teoreticky mu muze chybet znalost ASM ;-)
https://godbolt.org/z/elNcJ8
compilace/disassembling je docela dobry napad 

int i, j;
for(i = 0; i < 10; ++i) {
for(j = 0; j < 20; ++j) {
if(j == 5)
goto vylez_z_cyklu;
}
}
vylez_z_cyklu: printf("j je rovno %d\n", j);