Bonjour à tous,

je suis complètement novice en C, pas en prog puisque je connais un peu l'ADA, le fortran et le VBA.
J'ai décidé de me mettre à ce "standard"...

J'ai lu pas mal de tuto et aucun n'explique clairement la necessité de déclarer les prototypes de fonction dans des headers. Ces mêmes tutos exprime plutot ca comme un choix et non une obligation.

Ceci se verifie plus ou moins dans ce premier bout de code "simpliste":
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
#include <stdio.h>
 
int main(void)
{
test(19);
}
int test(int entree)
{
printf("test:: %d \n",entree);
}
la fonction test ne renvoit pas un int, je suis d'accord mais notez que la compilation ne retourne aucune erreur.

Par contre, une code comme celui la:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
         #include <stdio.h>
 
    int main()
         {
             test();
             return 0;
        }
 
         void test()
        {
            printf("prout");
        }
retourne une erreur:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
Scripts_C/test_2.c:18: warning: conflicting types for ‘test’
Scripts_C/test_2.c:10: warning: previous implicit declaration of ‘test’ was here

Qu'en pensez vous?

Merci