一个函数的问题
#include<stdio.h>#define size 4
int printfboard();
int main()
{
int board;
printfboard(board);
}
原程序出错的地方就是这里,所以我简化了下也是同样的问题C:\Users\Administrator\Desktop\未命名3.cpp too many arguments to function 'int printfboard()'
请问是怎么回事,能讲下原理最好了,还有我应该怎么改呢?
另外有一个问题,我想将一个函数的地址作为形参传进另一个函数里我该怎么做呢?
就像是这样
int add(int a,int b)
int three(int a,int b,int(*p)())
我想把add()这个函数传进three里该怎么写呢
我当时写的是这样three(a,b,add())报错了呢然后我把add()换了好几种写法一样报错。。。
还请指教,谢谢 你的函数在最前面声明的时候,没有参数。
#include<stdio.h>
#define size 4
int printfboard(); //你这里是不带参数的,所以你的调用是不能带参数的,如果要接收参数就必须声明带参数
//如:
int printfboard_a(int a);
int main()
{
int board;
printfboard(board); // 这里只能这样调用 :printfboard();
printfboard_a(board); //printfboard_a 才是可以带参数的, 至于为什么 下标要 size - 1 ,是因为 下标是从0开始的 长度4 的数组 下标范围是 0-3
}
参考:
https://www.cnblogs.com/applebunny/archive/2012/09/09/2677307.html
我想将一个函数的地址作为形参传进另一个函数里我该怎么做呢
那就声明个函数指针然后把这个函数指针传入另一个的函数
#include <stdio.h>
#define size 4
void printfboard(int board[]);
int main()
{
int board;
printfboard(board);
return 0;
}
void printfboard(int board[])
{
int i, j;
for(i=0; i<size; i++)
{
for(j=0; j< size; j++)
{
printf("%d\n", board);
}
}
} 函数声明出现错误。
使用指向函数的指针先把指针指向函数。 ///函数指针声明:
void (*lpfun)(int a);
lpfun lfun; // lfun 才是变量 lpfun 可以看作一个函数类型结构 1 你声明的函数形参为空,调用时又传递了一个数组,当然通不过编译,要修改的话,你需要根据实际需求修改函数的形参列表
2 传递一个函数进去,写上函数名即可,不用带小括号,也就是这样
result = three(x, y, add) ba21 发表于 2017-11-18 20:56
参考:
https://www.cnblogs.com/applebunny/archive/2012/09/09/2677307.html
可是我还是错误了呢。。。我之前也试过声明的时候带参数,但还是失败了
#include<stdio.h>
#define size 4
int printfboard(int board[]);
int main()
{
int board;
printfboard(board);
}
错误原因是这样的
7 C:\Users\Administrator\Desktop\未命名3.cpp undefined reference to `printfboard(int (*) )'
C:\Users\Administrator\Desktop\collect2.exe ld returned 1 exit status echo000 发表于 2017-11-18 23:30
可是我还是错误了呢。。。我之前也试过声明的时候带参数,但还是失败了
#include
#define size 4
把我上的代码复制上去还能错????????????
页:
[1]