十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
可以互换:
目前累计服务客户上1000家,积累了丰富的产品开发及服务经验。以网站设计水平和技术实力,树立企业形象,为客户提供成都网站建设、网站设计、网站策划、网页设计、网络营销、VI设计、网站改版、漏洞修补等服务。创新互联始终以务实、诚信为根本,不断创新和提高建站品质,通过对领先技术的掌握、对创意设计的研究、对客户形象的视觉传递、对应用系统的结合,为客户提供更好的一站式互联网解决方案,携手广大客户,共同发展进步。
(1)如果先写主函数main(),再写函数max(),需在main()之前进行函数原型声明:“int max(int, int);”——这相当于告诉main()函数:有这样一个函数max,它长成这个样子int max(int, int),它在某个地方有定义(实现)。
(2)如果先写函数max(),再写主函数main(),就不需要专门写函数原型声明了,因为函数定义(实现)已经做了原型声明。
PS:什么是函数原型?函数返回值类型,函数名及其形参类型共同构成函数原型,这就是说:形参名不是函数原型的要素。
C语言中一个完整的函数由函数首部和函数体构成,而且定义函数时两者都是必不可少的。
函数定义的一般形式如下:
类型标识符
函数名(形参表列)
//
这是函数首部
//
以下{
}内的是函数体
{
说明部分
执行部分
}
举例说明如下:
// 定义一个不带返回值的函数
// 函数功能:输出形参的值
void fun(int a, int b)
{
printf("%d, %d\n", a, b);
}
// 定义一个带返回值的函数
// 函数功能:返回2个整数数的最大值
int fun(int a, int b)
{
return ab ? a : b;
}
根据你对add函数的定义,main函数的int a, b,c ; add(a,b,c);这两行是不对的。另外你没有对b和c初始化, 这样的计算也没有意义,因为这样的自动变量值是随机的。
可以改成以下这个样子。
#includestdio.h
struct well{
int re;
int im;
};
typedef struct well well;
int add(well *a, well *b, well *c);
int main(void)
{
well a, b, c;
b.re = 3; b.im = 4;
c.re = 4; c.im = 7;
add(a, b, c);
printf("a-re = %d\na-im = %d\n", a.re, a.im);
}
int add(well *a, well *b, well *c)
{
a-re = b-re + c-re;
a-im = b-im + c-im;
return a-re, a-im;
}