Witam, jestem bardzo początkującym programistą, uczyłem się wczoraj funkcji i mam jedno pytanie.
Wklejam kod prostego programu rysującego trójkąt o danej przyprostokątnej:
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <math.h>
void trojkat(int a, char znak)
{
for(int i=0;i<a;i++) {
for( int j=0;j<=i;j++)
{
printf("%c",znak);
}
printf("\n");
}
}
int main(int argc, char *argv[])
{
trojkat(4, '#');
system("PAUSE");
return EXIT_SUCCESS;
}
Program działa w tej postaci, jednak dręczy mnie jedna sprawa, dlaczego cały kod funkcji musi być wypisany przed mainem? Dlaczego program nie zadziała jeżeli przed mainem jedynie zadeklaruje funkcje, a po mainie po prostu wypisze jej kod i ją wywołam? Chodzi mi o taką postać:
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <math.h>
void trojkat(int a, char znak);
int main(int argc, char *argv[])
{
void trojkat(int a, char znak)
{
for(int i=0;i<a;i++) {
for( int j=0;j<=i;j++)
{
printf("%c",znak);
}
printf("\n");
}
}
trojkat(4, '#');
system("PAUSE");
return EXIT_SUCCESS;
}
Błąd jaki się pojawia to " a function definition is not allowed here before '{' token"
Ale dlaczego?