gpt4 book ai didi

c - 函数头/声明

转载 作者:行者123 更新时间:2023-11-30 17:29:21 27 4
gpt4 key购买 nike

这是我的主要功能以及我要传递的内容。

int main(void){
struct can elC[7]; // Create an array of stucts

Initialize(elC); // initializes the array

return 0;
}

int Initialize(struct can elC[7]){

}

在 C 中,我们不需要在 main 或其他东西之前声明函数吗?如果是的话,它看起来会怎么样?我的代码运行良好,声明为

int Initialize();

但是我不需要类似的东西

int Initialize(struct can elc[7]);

最佳答案

/* Declaration of Structure */
struct can {
/* Structure members */
};

/* Function Prototype - ANY OF THE THREE */
int Initialize();
int Initialize(struct can []);
int Initialize(struct can var[]);

int main (void)
{
struct can elC[7]; // Create an array of stucts
Initialize(elC); // Call to function - Initializes the array
return 0;
}

int Initialize(struct can elC[7])
{
//Do something;
return 0;
}

如果不声明原型(prototype)会发生什么

下面的内容就可以正常工作。

$ gcc filename.c   

当与警告的-Wall选项结合使用时,它将引发警告。

$ gcc filename.c -Wall
In function ‘main’:
Warning: implicit declaration of function ‘Initialize’ [-Wimplicit-function-declaration]

因此,最好在 main 之前声明原型(prototype),例如

int Initialize(struct can []);   

int Initialize(struct can var[]);

下面也是有效的,意味着您可以传递任意数量的参数。请参阅here

int Initialize();   

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com