I wrote the following function:
typedef float (*flIntPtr)(char);
flIntPtr c(int i) {
flIntPtr pt = &b;
return pt;
}
float b(char c) {
....//do something
}
Then visual studio reported that b is an undeclared identifier. I have go through the examples of possible causes to C2065:undeclared identifier below: Compiler Error C2065
To avoid typo or similar problem, I used single letters as function names, and so on.
I also went through similiar questions provided by stackoverflow, there I noticed a similar problem
hence I thought it might be caused by mistakenly written expression of the function pointer or type mismatch, since I didn't think my typedef part is wrong, I tried to change flIntPtr pt = &b; to flIntPtr pt = b; and flIntPtr pt = *b; but the error remained.
Thus, I am once again asking for your technical support.~
bis indeed undeclared at the point where its address is taken. Also use of single letters as names is what typically leads to typos. In this case it also immediately leads to shadowing of functioncby argumentc.int f() { return g(); } int g() { return 0;}.