此问题之前已被问过,但解决方案似乎没有解决我的问题。
我为大学作业写了一个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;
我不确定我的问题在哪里,我将非常感谢您的帮助!