这是一个使用链接列表的b日提醒代码
typedef struct node
{
char name[61];
int month; int day;
int year;
struct node *next;
}node;
Run Code Online (Sandbox Code Playgroud)
这是清单
typedef struct list
{
node *head;
node *tail;
}list;
Run Code Online (Sandbox Code Playgroud)
这是创建列表代码
list *create_list(list *plist)
{
plist->head = NULL;
plist->tail = NULL;
return plist;
}
Run Code Online (Sandbox Code Playgroud)
这会将创建的节点插入列表中
list *insert_list(list *plist, node *pnode, node *new_node)
{
new_node->next = pnode->next;
pnode->next = new_node;
if (plist->tail == pnode)
{
plist->tail = new_node;
}
}
Run Code Online (Sandbox Code Playgroud)
这是添加生日菜单
void add_birthday(list *List)
{
char x;
node *data = (node *) malloc(sizeof(node));
List …Run Code Online (Sandbox Code Playgroud) 美好的一天:)我正在研究从加速度计和陀螺仪获得俯仰,偏航和滚转角度的代码.为了创建一个易于理解的更清晰的代码,我使用了两个不同的功能.一个用于计算俯仰偏转和俯仰的陀螺仪,另一个用于加速度计也可以做同样的事情.
float *readGyro(){
/*get data from sensor here*/
float gyroAngles[4]={gyroPitch,gyroRoll,gyroYaw};
float* gyroPRY=gyroAngles;
return gyroPRY;
}
float *readAccel(){
/*get data from sensor here*/
float accelAngles[4]={accelPitch,accelRoll,accelYaw};
float* accelPRY=accelAngles;
return accelPRY;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我将函数的输出存储到一个数组中以传递给main函数.基本上指针被传递.但是,在从传递的指针访问值时,会打印常量垃圾值(不会随着我移动IMU而改变)(例如,2.38221e-44和-3.84146e-06).我通过打印这些函数中的值来检查陀螺仪和加速度计的功能输出,它们很好.
int main(void){
float *accelData;
float *gyroData;
while(1){
accelData=readGyro();
gyroData=readAccel();
float accelPitch=*(accelData);
float accelRoll=*(accelData+1);
float accelYaw=*(accelData+2);
float gyroPitch=*(gyroData);
float gyroRoll=*(gyroData+1);
float gyroYaw=*(gyroData+2);
cout << "AccelPitch=" << accelPitch <<endl;
cout << "AccelRoll=" << accelRoll <<endl;
cout << "AccelYaw=" << accelYaw <<endl;
cout << "GyroPitch=" << gyroPitch <<endl;
cout << "GyroRoll=" << gyroRoll …Run Code Online (Sandbox Code Playgroud)