Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] conflicting types for ‘obraz’, previous declaration of ‘obraz’ was here

Ostatnio zmodyfikowano 2013-12-29 15:31
Autor Wiadomość
quatromen
Temat założony przez niniejszego użytkownika
[C] conflicting types for ‘obraz’, previous declaration of ‘obraz’ was here
» 2013-12-29 15:16:18
Witam
Mam problem z modułami .Mianowicie wyskakuje mi taki błąd podczas kompilacji komenda :
gcc -pedantic -Wall -c negacja.c -std=c99
Wyskakujące błędy :
negacja.c:12:4: error: conflicting types for ‘obraz’
negacja.h:7:4: note: previous declaration of ‘obraz’ was here
negacja.c:15:6: error: conflicting types for ‘negacja’
negacja.h:9:6: note: previous declaration of ‘negacja’ was here
Zawartość plików :
negacja.c
C/C++
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include "negacja.h"

/* Deklaracja struktury ZROBIONE*/
typedef struct {
    int wymx;
    int wymy;
    int szarosci;
    void * obraz_p;
} obraz;

/* Negacja (zamiana czarnego na biale) ZROBIONE */
void negacja( obraz * wobr )
{
    int i, j;
   
    int( * obraz_pgm )[ wobr->wymx ];
    obraz_pgm =( int( * )[ wobr->wymx ] ) wobr->obraz_p;
   
    for( j = 0; j < wobr->wymx; j++ )
    {
        for( i = 0; i < wobr->wymy; i++ )
        {
            obraz_pgm[ i ][ j ] = wobr->szarosci - obraz_pgm[ i ][ j ];
        }
    }
}
negacja.h
C/C++
/* Deklaracja struktury ZROBIONE*/
typedef struct {
    int wymx;
    int wymy;
    int szarosci;
    void * obraz_p;
} obraz;

void negacja( int );
Z góry dzięki za pomoc

Tak mi się wydaje że te błędy powstają w ostatniej linijce kodu pliku negacja.h
C/C++
void negacja( int );
bo nie wiem jak zadeklarowć dwa typy zmiennych :(
P-100506
pekfos
» 2013-12-29 15:25:23
Wywal definicję obraz z negacja.c.
P-100510
quatromen
Temat założony przez niniejszego użytkownika
» 2013-12-29 15:27:47
Zrobione :
C/C++
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include "negacja.h"

/* Negacja (zamiana czarnego na biale) ZROBIONE */
void negacja( obraz * wobr )
{
    int i, j;
   
    int( * obraz_pgm )[ wobr->wymx ];
    obraz_pgm =( int( * )[ wobr->wymx ] ) wobr->obraz_p;
   
    for( j = 0; j < wobr->wymx; j++ )
    {
        for( i = 0; i < wobr->wymy; i++ )
        {
            obraz_pgm[ i ][ j ] = wobr->szarosci - obraz_pgm[ i ][ j ];
        }
    }
}
teraz tylko jeszcze wyskakuje błąd:
negacja.c:7:6: error: conflicting types for ‘negacja’
negacja.h:9:6: note: previous declaration of ‘negacja’ was here
P-100512
pekfos
» 2013-12-29 15:28:53
Popraw deklarację funkcji w negacja.h.
P-100513
quatromen
Temat założony przez niniejszego użytkownika
» 2013-12-29 15:31:40
Dzięki pekfos, działa :)

Zamykam temat, problem rozwiązany :)
P-100515
« 1 »
  Strona 1 z 1