Kezdőoldal » Számítástechnika » Programozás » C-ben mi a különbség a void...

C-ben mi a különbség a void main () { és int main () { közt?

Figyelt kérdés

Valamint a static void main () { mire jó?

Feltételezem, hogy az int main() { hívása után a lezáró } előtti sorban a return 1 utasítással vissza kell térni (ha jól tudom)...

Egy kezdő honnan fogja tudni az ilyesmit e nyelv esetén, egyáltalán létezik jó tutorial, ami teljesen az alapoktól bevezet és elmagyarázza az összefüggéseket? (nem videóra hanem tutorial-ra gondolok).

Programozási logikám van, mert más nyelven tanultam programozni, amit értettem is, Pascal volt az a bizonyos nyelv, ami számomra megérthető volt és nem volt agyonbonyolítva mindenfélével...



2017. okt. 24. 18:49
 1/8 anonim ***** válasza:
0%

Mondjuk agyon bonyolítva a C sincs.

Abban minden függvény. A main is.

A többit gondolom kitalálod.

2017. okt. 24. 18:57
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
100%

C-ben a függvények deklarálásának módja:

visszatérési_érték függvénynév (paraméterek) {

függvénytörzs;

}


A void ("üres") kulcsszó arra utal, hogy a függvénynek nincsen visszatérő értéke (Pascalban erre szolgál a Procedure vagyis az eljárás).


Az int visszatérési érték esetén a függvény törzsében a return kulcsszó után egy egész értéket - például:

return 10;

vagy egy egész értéket tartalmazó változót:

int a = 10;

int b = 20;

int c = a + b;

return c;

kell megadni.


A static kulcsszó a láthatóságot szabályozza. Ha egy forrásfájlban egy függvény deklarálását static kucsszóval kezded, akkor az a függvény csak abban a forrásfájlban hívható meg, másikból nem.

2017. okt. 24. 19:30
Hasznos számodra ez a válasz?
 3/8 A kérdező kommentje:

Köszönöm. Hol találhatok nagyon jó tutorial-okat, amely "lépésről-lépésre" elvisz egy bizonyos szintig, hogy legalább egy fokkal bonyolultabb programot is képes legyek összehozni mint a "Hello world" kiíratása? :)

Szöveges tutorial-ok érdekelnének.

2017. okt. 24. 19:34
 4/8 anonim ***** válasza:

Egyébként a szabvány szerint, a program törzsét (ami Pascalban a Begin és End. kulcsszavak között helyezkedik el) alkotó main függvénynek egésznek (int) kell lennie.

"5.1.2.2.1 Program startup


1 The function called at program startup is named main. The implementation declares no prototype for this function. It shall be defined with a return type of int and with no parameters:

int main(void) { /* ... */ }


or with two parameters (referred to here as argc and argv, though any names may be used, as they are local to the function in which they are declared):

int main(int argc, char *argv[]) { /* ... */ }


or equivalent; or in some other implementation-defined manner."

Forrás: [link]

2017. okt. 24. 19:38
Hasznos számodra ez a válasz?
 5/8 anonim ***** válasza:

"alkotó main függvénynek egésznek (int) kell lennie"

Pontosítok:

alkotó main függvény visszatérési értékének egésznek (int) kell lennie

2017. okt. 24. 19:41
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

#2: ekkora marhaságot honnan szedsz? static a láthatóságot? nem a private c++ kulcsszóval kevered?

A static azt jelenti, hogy az adott változó vagy függvény egyszer inicializálódik csak, és megtartja globálisan az értékét a későbbiekben is.

2017. okt. 24. 21:11
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

Mindkettőtöknek igaza van.

A static azt jelenti, hogy

a) static változó megtartja az értékét a függvényhívások közt úgy, hogy közben nem globális változó, hanem a függvény lokális változója (a fordító nem a stack-en foglal neki helyet, hanem a heap-en)

b) static függvény csak abból a forrásfájlból érhető el, amelyikben deklarálták


Kérdező, ajánlom Brian W. Kernighan- Dennis M. Ritchie: A C programozási nyelv c. könyvét, neten megtalálod.

2017. okt. 24. 21:36
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

"static a láthatóságot? nem a private c++ kulcsszóval kevered? "

Nem keverem. Maximum félreérthetőségre ad okot.


"In the C programming language (and its close descendants such as C++ and Objective-C), static is a reserved word controlling both lifetime (as a static variable) and visibility (depending on linkage).

...

Similarly, a static function -- a function declared as static at the top level of a source file (outside any class definitions) -- is only visible throughout that file ("file scope", also known as "internal linkage")."

Forrás: [link]


"az adott modulra nézve lokálissá teszi a proba függvény láthatóságát, azaz másik modulban lévő függvényből nem tudod meghívni (a linker hibát fog jelezni)."

Forrás: [link]


"Statikus változót lokálisan és globálisan is létrehozhatunk, értékét a program futása során végig megtartja, a különbség a kettő között csak a láthatóságban van."

Forrás: [link]


"A blokkon kívüli static kulcsszó az adat vagy függvény láthatóságát a forrásfájlon belülre korlátozza. A blokkon kívül deklarált, static nélküli változó és a static nélküli függvény globális."

Forrás: [link]


"A static tárolási osztály mind külső, mind pedig belső szintú azonosítókkal együtt használható. Ha külsó szintú azonosítók előtt szerepel, akkor az azonosítók láthatóságát a file-ra korlátozza. Ha belső szintú nevek előtt adjuk meg, a nevek élettartamát automatikusról globálisra módosítja."

Forrás: Benkő Tiborné, Benkő László, Tóth Bertalan: Programozzunk C nyelven! Computerbooks, Budapest 1998 (243. oldal)

2017. okt. 24. 21:54
Hasznos számodra ez a válasz?

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!