joh*_*eli 1 c parameters struct pointers arguments
我正在尝试将指针传递给C中的结构但我不能:
float calcular_media(struct aluno *aluno) {
Run Code Online (Sandbox Code Playgroud)
输出警告:
C:\WINDOWS\system32\cmd.exe /c gcc main.c aluno.c
aluno.c:7:29: warning: 'struct aluno' declared inside parameter list
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?谢谢.
您是否在此函数之前声明了 struct aluno?
或者有一个完整的定义:
struct aluno {
...
};
Run Code Online (Sandbox Code Playgroud)
或者至少是一个前向声明:
struct aluno;
Run Code Online (Sandbox Code Playgroud)
我相信你最终会做这样的事情:
#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;
}
Run Code Online (Sandbox Code Playgroud)
在包含该行的文件中
float calcular_media(struct aluno *aluno) {
Run Code Online (Sandbox Code Playgroud)
在线前必须有下列之一
struct aluno;或struct aluno { char c; int i; double d; };或#include "aluno.h"