c语言中什么是原型定义
答案:4 悬赏:80 手机版
解决时间 2021-03-19 19:45
- 提问者网友:欺烟
- 2021-03-18 20:21
c语言中什么是原型定义
最佳答案
- 五星知识达人网友:未来江山和你
- 2021-03-18 21:22
//举例说明
#include<stdio.h>
int max(int *a,int m,int n); //这行就是函数原型,函数定义在主函数后面。函数原型的作用就是实现函数先调用(main中调用),后定义(定义在main函数后面)。
void main()
{
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
printf("max=%d\n",max(&a[0][0],3,4));
}
int max(int *a,int m,int n)
{
int ma=a[0],i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(ma<a[i*n+j]) ma=a[i*n+j];
return ma;
}
#include<stdio.h>
int max(int *a,int m,int n); //这行就是函数原型,函数定义在主函数后面。函数原型的作用就是实现函数先调用(main中调用),后定义(定义在main函数后面)。
void main()
{
int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
printf("max=%d\n",max(&a[0][0],3,4));
}
int max(int *a,int m,int n)
{
int ma=a[0],i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(ma<a[i*n+j]) ma=a[i*n+j];
return ma;
}
全部回答
- 1楼网友:思契十里
- 2021-03-18 23:40
中什么是原型定义
离问题结束还有 13 天 4 小时
提问者:问者sxf | 浏览次数:32次
- 2楼网友:不甚了了
- 2021-03-18 23:15
函数原型能告诉编译程序一个函数将接受什么样的参数,将返回什么样的返回值,这样编译程序就能检查对函数的调用是否正确,是否存在错误的类型转换。例如,现有以下函数原型;
int some_func(int,char·,long);
编译程序就会检查所有对该函数的引用(包括该函数的定义)是否使用了三个参数并且返回一个int类型的值。如果编译程序发现函数的调用或定义与函数原型不匹配,编译程序就会报告出错或警告消息。例如,对上述函数原型来说,当编译程序检查以下语句时,就会报告出错或警告消息:
x = some_func(l);
x = somc_funcc*hellol", 1, "dude:");
x = aome_funcd, sir, 2879, "t");
下例中的函数调用同样是不正确的,因为函数some_func()的返回值不是一个long*类型的值。
lvalue=some_func(1,str,2879);
同样,编译程序还能检查函数的定义(或函数体)是否与函数原型匹配。例如,当编译程序检查以下函数定义时,就会报告出错或警告消息:
int some_func(char *string,longlvalue,int ivalue)
......
}
总之,在源文件中说明函数原型提供了一种检查函数是否被正确引用的机制。目前许多流行的编译程序都会检查被引用的函数的原型是否已在源文件中说明过,如果没有,就会发出警告消息。
- 3楼网友:低血压的长颈鹿
- 2021-03-18 21:47
我还直是不知道呢,我说说自己的理解吧,一个函数,可能在别外被引用或是在本文件中但是要先引用了而后面才有函数定义,此时编译器需要先行知道这个函数返回类型和参数类形,才可以正确的帮着做严格的数据类型和参数个数的检查 (如不提前申明就会当做是返回int 型,参数都当int型且不能检查参数个数),这个函数在定义之前被提前申明了一下函数形式,就是所谓的函数原型了,函数原型中,变量明是可以省略的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯