Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

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 580 keer)

Offline niekn

  • Lid
    • omega-xis
  • Steunpunt: Nee
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 »

Offline SeySayux

  • Lid
    • SeySayux.net
  • Steunpunt: Nee
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
  • Steunpunt: Nee
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  ^-^ ^-^