AndersHz Postad 13 mars, 2009 Share Postad 13 mars, 2009 Är det någon som kan förklara varför denna programsnutt inte funkar? //gkompilator ger felmeddelande: error C3861: 'test': identifier not found #include<iostream> using namespace std; void test(char[]) { cout << t << endl; } void main() { char z[20] = "text"; cout << z << endl; test(z); cin.get(); cin.get(); } Länk till kommentar Dela på andra webbplatser More sharing options...
Telly82 Postad 13 mars, 2009 Share Postad 13 mars, 2009 Testa att före raden void test(char[]) lägga in funktionsdeklarationen void test(char[]); OBS semikolonet i slutet. Länk till kommentar Dela på andra webbplatser More sharing options...
lar-sode Postad 13 mars, 2009 Share Postad 13 mars, 2009 Är det någon som kan förklara varför denna programsnutt inte funkar?//gkompilator ger felmeddelande: error C3861: 'test': identifier not found #include<iostream> using namespace std; void test(char[]) { cout << t << endl; } void main() { char z[20] = "text"; cout << z << endl; test(z); cin.get(); cin.get(); } Så här måste du skriva: #include<iostream> using namespace std; void test(const char* t) //måste namnge att det är t du vill använda samt bytte från char[] till const char* { cout << t << endl; } int main(void) { char z[20] = "text"; cout << z << endl; test(z) cin.get(); cin.get(); return 0; } Länk till kommentar Dela på andra webbplatser More sharing options...
AndersHz Postad 13 mars, 2009 Författare Share Postad 13 mars, 2009 Så här måste du skriva: #include<iostream> using namespace std; void test(const char* t) //måste namnge att det är t du vill använda samt bytte från char[] till const char* { cout << t << endl; } int main(void) { char z[20] = "text"; cout << z << endl; test(z) cin.get(); cin.get(); return 0; } Ska testa men, return 0 ihop med void? Det är inte tänkt att något värde ska returneras. Länk till kommentar Dela på andra webbplatser More sharing options...
AndersHz Postad 13 mars, 2009 Författare Share Postad 13 mars, 2009 Är det någon som kan förklara varför denna programsnutt inte funkar?//gkompilator ger felmeddelande: error C3861: 'test': identifier not found #include<iostream> using namespace std; void test(char t[]) { cout << t << endl; } void main() { char z[20] = "text"; cout << z << endl; test(z); cin.get(); cin.get(); } upptäckte att jag missade ett 't' före [] i funktionshuvudet (kompletterat), sorry. Vilken skillnad gör det? Länk till kommentar Dela på andra webbplatser More sharing options...
lar-sode Postad 13 mars, 2009 Share Postad 13 mars, 2009 Ska testa men, return 0 ihop med void? Det är inte tänkt att något värde ska returneras. main() måste returnera en int, 0 om programmet avslutades utan fel och om programmet avslutades pga något som gick fel avslutas det med värde större än 0. Kolla i böcker eller standarden angående detta. alltså du måste skriva int main(void) om programet inte skall ta några argument. alternativt bara int main(). om programmet skall ta argument så skall main() se ut som följer: int main(int argc, char* argv[]) Mvh Lars Länk till kommentar Dela på andra webbplatser More sharing options...
lar-sode Postad 13 mars, 2009 Share Postad 13 mars, 2009 upptäckte att jag missade ett 't' före [] i funktionshuvudet (kompletterat), sorry. Vilken skillnad gör det? Ja om du inte namnger din variabel med ett namn tex 't' så kan du ju inte gärna skriva: cout << t << endl; Hoppas du förstod vad jag menar med detta. Det gör alltså väldigt stor skillnad. För att se mer i detalj vad som gå fel eller varningar vid kompilering använd gcc med flaggan -wall se man gcc för beskrivningar av vilka flaggor du kan använda. Länk till kommentar Dela på andra webbplatser More sharing options...
AndersHz Postad 19 mars, 2009 Författare Share Postad 19 mars, 2009 Tack alla för tipsen! Det har hjälpt mej att lösa problemet. Länk till kommentar Dela på andra webbplatser More sharing options...
Rekommendera Poster
Arkiverat
Det här ämnet är nu arkiverat och är stängt för ytterligare svar.