Ma is igaz, hogy minden C nyelven írt program egyúttal szabványos a C++ nyelv szerint, vagy a C nyelvben már vannak olyan elemek, amik a C++-nak nem részei?
Figyelt kérdés
2017. okt. 1. 19:03
1/7 anonim válasza:
Nem értem. A C nyelv a korábbi, a C++ a szigorúbb.
2/7 A kérdező kommentje:
Régen a C nyelv a C++ részének tekinthető volt. De ha jól tudom, azóta vannak olyan elemek a C nyelvben, amik már nem részei a C++ nyelvnek.
2017. okt. 1. 19:14
3/7 anonim válasza:
Többé-kevésbé. A mantra, miszerint a legtöbb C kód C++ kódként is fordítható, továbbra is fennáll. Mindazonáltal vannak különbségek, az egyik ilyen pl, hogy C++-ban nincsen VLA (Variable Length Array), röviden nem csinálhatsz meg egy ilyet:
int n;
scanf("%d",n);
int arr[n];
Ez C szerint valid kód, C++ szerint nem. A C++ szabvány nem engedi meg azt, hogy egy tömb méretét futási időben ismerje meg a program.
5/7 anonim válasza:
A C++ minden bizonnyal azért nem támogatja ezt a megközelítést, mert ez a tömb a stack-en foglalna helyet, és rossz ötlet az amúgy limitált stack-re ráereszteni egy tárolót ami a jóégtudja mekkora lesz. Éppezért fordítási időben ismeretlen méretű tömböt csak dinamikus tömbként, a heap-en lehet létrehozni.
7/7 anonim válasza:
A C11-es szabványtól a VLA csak opcionális, tehát nem kötelező implementálni a fordító készítőinek.
Egyébként itt van példa arra mi fordul C-ben és C++-ban nem: [link]
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!