Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [opgelost] impliciete declaratie van functie[-Wimplicit-function-decl - blahblah  (gelezen 862 keer)

Offline niekn

  • Lid
    • omega-xis
beste heren!

ik ben op dit moment bezig met mijn C huiswerk voor school.
de opdracht is heel simpel, leren werken met pointers, ik moet meerdere variablen van de ene naar de andere functie "doorsluizen"
dit heb ik op dit moment:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

int main(void) {
int getal1, getal2;
getal1 = 5;
getal2 = 20;
omwisselen(&getal1, &getal2);
printf("getal1: %d getal2: %d", getal1, getal2);
return EXIT_SUCCESS;
}

void omwisselen(int* g1, int* g2) {
int tijdelijk = *g1;
*g1 = *g2;
*g2 = tijdelijk;
}

het compileert goed, maar ik krijg steeds 2 meldingen:
1: Multiple markers at this line
   - let op: impliciete declaratie van functie ‘omwisselen’ [-Wimplicit-function-declaration]
   - previous implicit declaration of ‘omwisselen’ was here
locatie: omwisselen(&getal1, &getal2); (in main)
2: let op: conflicting types for ‘omwisselen’ [enabled by default]
locatie: void omwisselen(int* g1, int* g2) {

wat betekent dit? (want de meuk compileert wel goed en werkt prima)

BTW: we gebruiken eclipse CDT op ubuntu (gewoon die uit de repo's) en de GCC/linux C compiler (alleen gaan we straks over op de GCC-cross-compiler).

niek
« Laatst bewerkt op: 2012/04/29, 17:00:54 door niekn »

Re: impliciete declaratie van functie[-Wimplicit-function-decl - blahblah
« Reactie #1 Gepost op: 2012/04/27, 10:47:14 »
Je moet de functie "omwisselen" declaren voor main (anders neemt de compiler aan dat die functie de signature int(void) heeft)

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

void omwisselen(int*, int*); // declaratie

int main(void) {
int getal1, getal2;
getal1 = 5;
getal2 = 20;
omwisselen(&getal1, &getal2);
printf("getal1: %d getal2: %d", getal1, getal2);
return EXIT_SUCCESS;
}

void omwisselen(int* g1, int* g2) {
int tijdelijk = *g1;
*g1 = *g2;
*g2 = tijdelijk;
}
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Offline niekn

  • Lid
    • omega-xis
Re: impliciete declaratie van functie[-Wimplicit-function-decl - blahblah
« Reactie #2 Gepost op: 2012/04/27, 14:47:09 »
jeey dit lost t op!
alleen geeft hij nu dit:
Multiple markers at this line
   - let op: passing argument 2 of ‘swapaddresses’ from incompatible pointer type [enabled by default]
   - let op: passing argument 1 of ‘swapaddresses’ from incompatible pointer type [enabled by default]
lijkt me dat ik dat zelf wel kan fixen  ^-^ ^-^