c - I can change the pointer's function? -
in script languages, such perl , python, can change function in run-time. can in c changing pointer function?
something like:
void fun1() { printf("fun1\n"); } void fun2() { printf("fun2\n"); } int main() { fun1 = &fun2; fun1(); // print "fun2" return 0; }
no. can't that.
you can regard fun1 placeholder fixed entry point of function.
the semantic looking fun1=&fun2;
point on every call fun1
causes fun2
called.
fun1
value not variable. in same way in statement int x=1;
x
variable , 1
value.
your code makes no more sense thinking 1=2;
compile , point on x=x+1;
result in x
being incremented 2.
just because fun1
identifier doesn't mean it's variable let alone assignable.
Comments
Post a Comment