Javist, men det hedder sig, at g++ også er C compiler :-) Har compilet flere andre simple eksempler. Lyder mærkeligt at der skulle være mangler/inkompatibilitet...
Der er meget C kode der kan kompileres som C++ kode, men der er også meget C kode der ikke kan kompileres om C++ kode. Så ofte kan man godt kompilere C kode som om det var C++ kode.
Men netop disse "extern char line[], longest[];" er ikke valid C++ kode, men perfekt valid C kode.
Og det store spørgsmål er ikke om du bruger det ene eller det andet program til at oversætte med, spørgsmålet er om du oversætter som C eller C++ kode.
arne, det hedder den allerede ;-) Er ikke sikker på compileren kigger så meget på extensions. Spørgsmålet er, fejler gcc fordi den tror det er C++ eller fordi mener det er dårlig C?
Ikke forstået. Ideen er jo, at variablene erklæres uden for nogen funktion, og nøgleordet extern garanterer at funktionen bruger den eksterne definition af variablen, frem for en lokal variabel.
Ok, der er 2 løsninger her. Den ene er at slette de linier hvor ordet "extern" indgår, hvilket virker i kraft af at programmet udføres i den tekstuelle rækkefølge - men det var jo ikke helt meningen med øvelsen...?
Den anden er, at line og longest igen initialiseres som "char line[MAXLINE]" i funktionerne. Det synes jeg er grimt. g++ bør da kunne se at arrayet allerede er initialiseret.
Jeg har forhørt mig hos en kyndig C-programmør, og moralen er vist bare, at man ikke skal brug g++ til C, selvom det siges at være muligt. Tak for jeres bidrag.
Nu er det ikke fordi det skal gøres til et stort problem. Men normalt ville man, hvis der er en der har bidraget til løsningen af problemet, uden at have lagt et "svar" men udelukkende "kommentarer", bede personen om at lægge et svar som man så kunne acceptere.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.