我有两个头文件和一个主程序。
标题文件为data.h
和flight.h
。主程序是calculateflight.c
。
数据头文件有一组typedef structs
,其中包含程序运行所需的变量。
我创建了一个名为flightmodel.h的头文件,其中包含以下内容:
#ifndef __FLIGHT_MODEL_H
#define __FLIGHT_MODEL_H
#include "Data.h"
void calculateFlight(speedParamsType *speed, spinParamsType *spin,
flightParamsType *fData);
#endif
data.h包含typedef struct
之类的
typedef struct {
float totalSpin;
float spinAxis;
float backSpin;
float sideSpin;
} spinParamsType;
struct variables
中没有错误,但我不知道如何在主函数内调用struct
。
void main()
{
speedParamsType speed;
spinParamsType spin;
flightParamsType fData;
speed.totalSpeed=200.0f;
speed.launchAngle=30.0f;
speed.horizontalAngle=5.0f;
spin.totalSpin=1000.0f;
flightParamsType fData;
fData.carry=
calculateFlightModel(&speed,&spin,&fData);
getch();
}
这是我在main函数中所做的。它显示错误C2275:'flightParamsType':非法使用此类型作为表达式 见'flightParamsType'的声明; 语法错误:缺少';'在标识符'fData'之前
答案 0 :(得分:0)
这是一个使用示例,请注意除了#include
指令外,没有什么特别需要做的。
#include "flight.h"
int main(int argc, char *argv[])
{
spinParamsType a = {1.0f, 1.0f, 1.0f, 1.0f};
spinParamsType b = {2.0f, 2.0f, 2.0f, 2.0f};
flightParamsType c; // I don't know what kind of members this struct have.
calculateFlight(&a, &b, &c);
return 0;
}
请记住编译所有源代码文件并将它们链接在一起
答案 1 :(得分:0)
您在声明之间有flightParamsType fData
的额外重复声明:
spin.totalSpin=1000.0f;
flightParamsType fData;
fData.carry=
calculateFlightModel(&speed,&spin,&fData);
(除了main
开头附近的那个)。这是非法的。