c - c中函数内的函数

标签 c

<分区>

在函数 doubleadd 中,我想要结果作为 x 和函数 add 的总和

#include <stdio.h>

int add(int a,int b)
{ return (a+b); }

int doubleadd(int x,int y=(*add)(int a,int b))
{ return (x+y); }

void main()
{
    void (*ptr)(int,int);
    ptr=add;
    int y=ptr(5,7);
    printf("%d",y);
    y=doubleadd(3,ptr(5,7));
}

请帮我解决这个问题

最佳答案

你不需要做那些乱七八糟的事情!这会很好:

y = doubleadd(3, add(5,7));

而doubleadd的原型(prototype)是

int doubleadd(int x, int y) { ... }

你也可以将复杂的表达式作为参数传递

关于c - c中函数内的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6255813/

相关文章:

c程序字符和整数分离

c - 如何在不使用数组的情况下输入一些由换行符分隔的整数后显示输出?

c - float * 和 int * 的不同 printf 行为?

c - "Beginning C from Novice to Professional"中右移的用法误区

objective-c - 不同的 C 数组声明

c - sscanf 和 scanset 停止读取十六进制数

linux - C : what does "?" mean?

c - X11 如何使用 xcb 恢复/启动另一个应用程序窗口?

c++ - 结构体用malloc分配,为什么? C++代码分析

c# - C# 中的 C/C++ 代码编译器