Nieuws:

Ubuntu-NL weer online!

Na een periode van technische problemen en een overbelaste server zijn we eindelijk weer bereikbaar.
Samen met Hobbynet, onze sponsor en hostingpartner, hebben we een oplossing gevonden zodat alles weer soepel draait.

Bedankt voor jullie geduld en begrip. We hopen nu weer verder te gaan waar we gebleven waren.

Het team van Ubuntu-NL

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 1297 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  ^-^ ^-^