gpt4 book ai didi

c - 我可以改变指针的功能吗?

转载 作者:行者123 更新时间:2023-12-01 13:56:41 26 4
gpt4 key购买 nike

在 Perl 和 Python 等脚本语言中,我可以在运行时更改函数。我可以通过更改指向函数的指针在 C 中做一些事情吗?

类似于:

void fun1() {
printf("fun1\n");
}

void fun2() {
printf("fun2\n");
}

int main() {
fun1 = &fun2;
fun1(); // print "fun2"
return 0;
}

最佳答案

没有。你不能那样做

您可以将 fun1 视为该函数固定入口点的占位符。

您正在寻找的语义是从 fun1=&fun2; 点每次调用 fun1 都会导致调用 fun2

fun1 是一个值而不是变量。同样在语句int x=1;中,x是一个变量,1是一个值。

你的代码没有比认为 1=2; 会编译并且从那一点 x=x+1; 会产生 x 递增 2.

仅仅因为 fun1 是一个标识符并不意味着它是一个变量,更不用说可赋值了。

关于c - 我可以改变指针的功能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31048305/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com