Sprawdzanie czy dana funkcja została wywołana

0

Witam,

Czy istnieje jakiś mechanizm, który sprawdzał czy dana funkcja została wywołana? Np funkcja która coś inicjalizuje i jeżeli np. nie została by wywołana to kompilator by wrzucił jakiegoś warna lub error.

Mam świadomość, że nie zawsze da się stwierdzić czy dana funkcja będzie kiedyś wywołana na etapie kompilacji, ale chodzi mi o proste, jawne wywołanie.

Pozdrawiam.

0

Kompilator raczej nie, ale dobre IDE to potrafi. Sprawdź Eclipse CDT, standardowy Eclipse sygnalizuje w projektach Javy wszystkie funkcje, które nie są jawnie wywoływane (sygnalizuje już na etapie pisania kodu).

0

Zazwyczaj rozwiązanie poprzednika zadziała, gdy się nie stosuje potworów (?) typu goto. Bo kompilator/IDE zwykle nie ma takiej siły, by sprawdzić, czy poniżej funkcja haha się wywoła, czy nie:

#include <stdio.h>
int haha(int x){
    return x*x-1337;
}
int main(){
    printf("TO MOJ BARDZO FAJNY PROGRAMIK\n");
    goto koniec;
    printf("WYNIK FUNKCJI HAHA: %i\n", haha(1337));  //NIGDY się nie wykona!
    koniec:;
    return 0;
}

Ale mam nadzieję, że tego typu kodu to raczej nie będzie.

0

o_O? Rozumiem ze słowo debugger jest wam obce? Stawiasz sobie breakpointa w tej metodzie/funkcji i voila.
Tak samo debugger umożliwia postawienie watcha czyli pozwala wyzwolić jakąś akcję jeśli wartość pewnej zmiennej ulegnie zmianie.

0

o_O czytanie ze zrozumieniem jest Ci obce? Chodzi o to by na etapie edycji bez uruchamiania (bez kompilacji) widzieć niewywoływane funkcje.
goto nie jest konieczne, wystarczy taki kod

#include <stdio.h>
int haha(int x){
    return x*x-1337;
}
int main(){
    printf("TO MOJ BARDZO FAJNY PROGRAMIK\n");
    if(2==3) haha();
    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1