Hol a szintaktikai hiba? . /hello. C: sor: 2: szintaktikai hiba " (" váratlan token közelében . /hello. C: sor: 2: `int main () '
#include <stdio.h>
int main()
{
printf("hello\n");
return 0;
}
Ebben sehol.
Abban amit fordítasz meg a fordító kiírja.
Esetleg azt tudom elképzelni, hogy a fordító csak a Linux típusú sorvégeket kezeli jól.
Ugye Linux esetén a sorvéget \n jelzi. Windows esetén a \r\n páros, Mac esetén . Ha a fordító csak a Linux sorvégeket kezeli jól, akkor a \r karaktert nem fogja tudni értelmezni.
(Anno a \n csak soremelést jelentett, a \r csak kocsi vissza jelentéssel bírt. Ergo egy \n csak sort léptetett, de onnan folytatta a nyomtató a nyomtatást, ahol éppen állt a nyomtatófej. A \r meg csak visszavitte a sor elejére, de nem emelt új sort, így rá lehetett nyomtatni a már kinyomtatott karakterekre. Tehát a következő sor elejére vinni a nyomtatófejet, ahhoz mindkét vezérlőkarakter kellett. Ennek ma más sok jelentősége nincs, a Windows megtartotta a \r\n párost, míg Linux esetén egyszerűsítettek a dolgon.)
Forráskódot biztos nem futtat le semmit, maximum fordít.
Hogyan próbálod fordítani? Milyen paraméterekkel?
Hát mondjuk ha nem mondod meg a fordítónak, hogy mit fordítson le, akkor elég nehezen fog sikerülni.
Arról nem beszélve, hogy .c kiterjesztésű outputot fordítani elég rossz ötlet.
A forráskód rendben
1. Javaslat: válassz "emberibb" fájlnevet - például hello.c
2. Miután lementetted a fordítás menete ebben az esetben:
gcc -o hello hello.c
3. A futtatás pedig ebben az esetben:
./hello
Miért rossz ötlet?
gcc -Wall -o kapcsolóval értelmesebb?
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!