gpt4 book ai didi

c - 在程序中使用函数指针

转载 作者:太空宇宙 更新时间:2023-11-04 05:59:12 25 4
gpt4 key购买 nike

我在这里使用了函数指针,但无法理解为什么它不起作用,这是我的一段代码。当我运行这段代码时,我没有输出,我期望在命令行中给出 -r 时打印降序和升序,如果没有给出命令行输入,它应该打印升序。

我的代码出了什么问题??

#include <stdio.h>
#include <stdlib.h>

void decending_sort() {
printf ("Decending order \n");
}

void ascending_sort() {
printf ("Ascending order \n");
}

int main( int argc, char **argv) {

int i;
void (*sort)();

while (*++argv) {
if ((strcmp ( *argv, "-r" )) == 0)
sort = decending_sort;
}
sort = ascending_sort;
}

最佳答案

您将 sort 定义为函数变量,为其赋值,但从未调用它,因此 decending_sort()ascending_sort() 曾经被执行过。

要调用它,请将最后一行添加到 `main()

  [...]

sort();
}

另外:没有任何参数的函数应该这样声明:

void decending_sort(void);

两者都应该是它们类型的变量

void (*sort)(void);

关于c - 在程序中使用函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21937073/

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