Dyrektywa preprocesora #ifndef + funkcja
Ostatnio zmodyfikowano 2015-03-16 17:36
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 |
|
pekfos |
» 2015-03-16 17:01:38 Nie. |
|
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.. |
|
erde Temat założony przez niniejszego użytkownika |
» 2015-03-16 17:36:53 jasne, dzięki wielkie i pozdrawiam |
|
« 1 » |