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

Dyrektywa preprocesora #ifndef + funkcja

Ostatnio zmodyfikowano 2015-03-16 17:36
Autor Wiadomość
erde
Temat założony przez niniejszego użytkownika
Dyrektywa preprocesora #ifndef + funkcja
» 2015-03-16 16:59:52
Witam serdecznie,

mam pytanie, czy można użyć deyrektywy preprocesora

#ifndef
//blok
#endif

do sprawdzenia zdefiniowania funkcji. Czyli jeżeli chce włączyć definicje funkcji do pliku nagłówkowego a jest możliwosc ze ona w jakims pliku będzie już zdefiniowana żeby ta dyrektywa to sprawdziła.

I teraz tak, deklarować można wiele razy, z wyjątkiem sytuacji w której w deklaracji definiuje jakiś argument domniemany. Sytuacja u mnie wygląda dokładnie tak. Mam plik:

#include<iostream>
double f(int a,int b=0);             !!!!!
#include"nagl.h"
using namespace std;
int main()
{
cout<<f(2,5);

}

double f(int a,int b)
{
return(a*b);
}




oraz nagl.h

#ifndef f
double f(int a,int b=0);
#endif


kompilacja oczywiście wywala błąd z powodu redefinicji, bo jak ja sformuowałem #ifndef na pewno nie działa. Oczywiscie wydalenie linijki !!!!!!! naprawia problem.

Tak wiec wracając do meritum czy mogę z ten sposób użyć tej dyrektywy preprocesora dla sprawdzenia wcześniejszej deklaracji funkcji.

Z góry dziękuje za odpowiedź i przepraszam za trywialność problemu jednak dopiero zaczynam moją przygodę z programowaniem

Pozdrawiam
P-128553
pekfos
» 2015-03-16 17:01:38
Nie.
P-128554
Fireho
» 2015-03-16 17:12:09
Po co ci to potrzebne?

Nie da się, bo preprocesor != kompilator. Preprocesor operuje wyłącznie na tekście i nie ma bladego pojęcia o istniejących funkcjach, zmiennych, klasach, typach danych, języku itd..
P-128556
erde
Temat założony przez niniejszego użytkownika
» 2015-03-16 17:36:53
jasne, dzięki wielkie i pozdrawiam
P-128559
« 1 »
  Strona 1 z 1