我正在尝试将指针传递给C中的结构但我不能:
float calcular_media(struct aluno *aluno) {
输出警告:
C:\WINDOWS\system32\cmd.exe /c gcc main.c aluno.c
aluno.c:7:29: warning: 'struct aluno' declared inside parameter list
我做错了什么? 谢谢。
答案 0 :(得分:5)
在包含该行
的文件中float calcular_media(struct aluno *aluno) {
以下其中一项必须在行
之前struct aluno;
或struct aluno { char c; int i; double d; };
或#include "aluno.h"
答案 1 :(得分:4)
你是否在此函数之前声明了struct aluno?
使用完整定义:
struct aluno {
...
};
或者至少是前瞻声明:
struct aluno;
答案 2 :(得分:3)
我相信你最终会做这样的事情:
#include <stdio.h>
struct aluno
{
int nota1;
int nota2;
}
float calcular_media(struct aluno* individuo)
{
printf("nota 1:%d\n", individuo->nota1);
printf("nota 2:%d\n", individuo->nota2);
}
int main()
{
struct aluno primeiro_aluno;
primeiro_aluno.nota1 = 9;
primeiro_aluno.nota2 = 5;
calcular_media(&primeiro_aluno);
return 0;
}
答案 3 :(得分:1)
在开始将函数传递给函数之前,您需要让编译器知道有一个名为aluno的结构。
struct aluno {
int x;
int y;
};
float calcular_media(struct aluno * aluno) {
// ...
}
答案 4 :(得分:1)
你有一个名为“aluno.h”的文件(带有struct aluno
的定义),你是否将它包含在“aluno.c”中?
/* aluno.c */
#include "aluno.h"
float calcular_media(struct aluno *aluno) { /* ... */ }