2010-12-08 5 views
9

Je suis sûr que cela a déjà été demandé, mais je ne pouvais pas trouver quelque chose qui pourrait m'aider. J'ai un programme avec des fonctions en C qui ressemble à ceciComment trier les fonctions en C? "déclaration implicite précédente d'une fonction était ici" erreur

function2(){ 
    function1() 
} 
function1(){ 
    function2() 
} 

main() { 
function1() 
} 

Il est plus compliqué que cela, mais j'utilise récursivité. Et je ne peux pas organiser la fonction dans le fichier afin que chaque fonction appelle uniquement les fonctions qui sont spécifiées au-dessus de lui-même. Je continue d'obtenir une erreur

main.c:193: error: conflicting types for 'function2' 
main.c:127: error: previous implicit declaration of 'function2' was here 

Comment éviter cela? Merci d'avance pour vos suggestions et réponses.

Répondre

16

Vous devez déclarer (définir non) au moins une fonction avant de l'utiliser.

function2();     /* declaration */ 
function1() { function2(); } /* definition */ 
function2() { function1(); } /* definition */ 

int main(void) { function1(); return 0; } 
+0

La définition de 'function1()' sert également de déclaration. – pmg

5

Essayez:

function1(); 
function2(); 

function2(){ 
    function1() 
} 
function1(){ 
    function2() 
} 

main() { 
function1() 
} 
+1

Mais pourquoi est-ce nécessaire? – abc

7

Foward déclarer vos fonctions ...

function1(); 
function2(); 

function2(){ 
    function1() 
} 
function1(){ 
    function2() 
} 

main() { 
function1() 
} 
+0

Mais pourquoi cela est-il nécessaire? – abc

+0

@abc la question était "comment" pas "pourquoi". Pour "pourquoi" je suggère de lire sur les spécifications de langage C en général. –

0

vos fonctions avant de déclarer, mais en utilisant prototypes. Si vous en avez beaucoup de sorte que vous ne pouvez pas gérer cela, c'est le moment de penser à votre conception et de créer un fichier .h avec tous vos prototypes. Utilisez

int function1(void); 
int function2(void); 

si c'est ce que vous vouliez dire. int function1() est déjà différent de celui de C. Aidez le compilateur de sorte qu'il puisse vous aider.

0

Voici comment fonctionne C. Nous devons déclarer la fonction avant l'utilisation. comme lorsque vous utilisez une variable, vous devez d'abord déclarer, puis vous l'utiliserez.

Déclaration: - function1(); function2(); , puis entrez votre propre code.

Questions connexes