Keeping track of how many times a function is called is easy when passing the counter as an argument into the function. It’s also easy when returning a one from the called function. But, I do not want to go that route. The reason behind this is because it seems like bad programming (letting the function know too much information). Is there a better way to keep track of how many times this function has been called?
I’m just looking for concepts that I could study. Providing code examples is not neccessary, but might be helpful.
Edit: I’m not actually looking for profiling tools. Let me add some code to get my point across. Because scope for funcCounter ends in main, I have no way of getting back a variable from myFunction that will increment funcCounter. I could possibly return 1 from myFunction and then increment funcCounter that way, but this doesn’t seem like very good programming. Is there another way to do it?
int main()
{
int funcCounter = 0;
char *mystring = "This is a silly function.";
myFunction(mystring);
cout << "Times function is called: " << funcCounter << endl;
return 0;
}
void myFunction(char *mystring)
{
cout << mystring << endl;
}
Have a static variable in your function and keep incrementing it each time the function in called.
If you want to do it for debugging reasons, then there are tools like
gcovwhich do this for you. (I’m pretty sure Microsoft doesn’t have an alternative bundled with Microsoft Visual C++)