在参数列表中声明的struct X在此定义或声明之外是不可见的

时间:2016-12-08 07:29:26

标签: c gcc struct makefile

此问题之前已被问过,但解决方案似乎没有解决我的问题。

我为大学作业写了一个C库,并编写了我自己的makefile进行编译。

**这是我的第一个C代码,所以如果它是一个愚蠢的问题我很抱歉..

编译时,我收到以下消息:

1

function getDesignerCollection() { $i = 0; foreach($order as $orderData) { $orderitems = $orderData['dproduct_id']; $orderitemsarray = explode(",", $orderitems); $k = 0; while ($k < count($orderitemsarray)) { if($data['dpaid_status']=='P'){$dpaid_status='Paid';} if($data['dpaid_status']=='U'){$dpaid_status='Unpaid';} if($data['dpaid_status']=='R'){$dpaid_status='Returned';} if($data['dpaid_status']==''){$dpaid_status='';} if ($orderitemsarray[$k] != '0') { $stmtorders = $user_home->runQuery("SELECT * FROM order_details"); $stmtorders->execute(array( ":dorder_id" => $orderData['entity_id'] )); $roworders = $stmtorders->fetch(PDO::FETCH_ASSOC); if ($roworders['dproduct_id'] == '') { $dorderStatus = "Unpaid"; } else { $dorderStatus = $roworders['dpaid_status']; } $responce[] = array( $orderData->getIncrementId() , $orderData->getIncrementId() , $orderitemsarray[$k], $dorderStatus ); } $k++; $i++; } } echo json_encode($responce); }

2

warning: ‘struct stud’ declared inside parameter list will not be visible outside of this definition or declaration
 void addGrade(char *id, int courseId, int gradeToAdd, struct stud* students);

^^ 2发生在我没有声明“struct stud”但是在方法中只有“stud”,即使我打字了它。 1当我在声明之前使用struct这个词时发生了。

每个.c文件都有一个.h文件,其中包含其方法的所有声明。 每个结构在右侧.h文件中定义一次,所有.c文件包含student.h。

*我正在Linux环境下使用gcc进行编译。

我添加了我的代码和makefile:

包括内部主要:

error: unknown type name ‘stud’
void addIncome(char *id, char *date, int amount, stud* students);

student.h:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include "grades.h"
#include "income.h"
#include "student.h"

main(){
    return 0;
}

makefile:

#define MAX_STR_LEN 20
#define MAX_LIST_LEN 10
#define MAX_NUM_STUDENTS 30

typedef struct stud{
    char sId[MAX_STR_LEN];
    char sName[MAX_STR_LEN];
    struct grade* sGrades; //both head of the lists
    struct income* sIncome;
    int sGradeLen;
    int sIncomeLen;
}stud;

我不确定我的问题在哪里,我将非常感谢您的帮助!

0 个答案:

没有答案