我正在学习c(在ANSI c中编程->第五版),并且遇到以下问题:
我正在实现一个带有函数指针的程序
#include<stdio.h>
//void swap (int *a, int *b); //function declaration
int main()
{
int m = 25;
int n = 100;
printf("m is %d, n is %d\n", m, n);
swap(&m, &n); //calling a function
printf("m is %d, n is %d\n", m, n);
return 0;
}
void swap (int *a, int *b) //function implementation
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
在上面的程序注释中,void swap (int *a, int *b);
行然后是程序运行文件,但在此遇到问题时给出一个建议为什么在这里给出建议
main.c:10:3:警告:隐式声明函数'swap'] >> [-Wimplicit-function-declaration]main.c:16:6:警告:交换类型与冲突main.c:10:3:注意:先前的'swap'隐式声明在这里m是25,n是100m为100,n为25
当我取消注释此行void swap (int *a, int *b);
然后程序运行正常时
#include<stdio.h> void swap (int *a, int *b); //function declaration int main() { int m = 25; int n = 100; printf("m is %d, n is %d\n", m, n); swap(&m, &n); //calling a function printf("m is %d, n is %d\n", m, n); return 0; } void swap (int *a, int *b) //function implementation { int temp; temp = *a; *a = *b; *b = temp; }
问题是为什么在上面的程序中不允许这样做?>
void swap (int, int); //function declaration
并输入错误
错误:
“交换”的类型冲突
void swap(int * a,int * b)//函数实现但允许在本书的示例中使用
我正在学习c(在ANSI c中编程->第五版)并面对以下问题:我正在实现一个程序,该程序具有指向函数#include
**不太确定**,但是我认为只有在有一个参数的情况下才可以这样做。我的意思是我可以int main(无效)但是之后,我必须做:int main(int argc,char ** argv)
**不太确定**,但是我认为只有在有一个参数的情况下才可以这样做。我的意思是我可以int main(无效)但是之后,我必须做:int main(int argc,char ** argv)