Jump to content
Just nu i M3-nätverket

C++ Funktions anrop


AndersHz

Recommended Posts

Ä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();

}

Link to comment
Share on other sites

Testa att före raden

void test(char[])

lägga in funktionsdeklarationen

void test(char[]);

 

OBS semikolonet i slutet.

Link to comment
Share on other sites

Ä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;

}

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Ä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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Tack alla för tipsen!

Det har hjälpt mej att lösa problemet.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...