#c #structure
Вопрос:
Я знаю, что strcmp ожидает тип char, я думаю, и pstate в этом случае является указателем на структуру, и я не знаю, как разыменовать это, чтобы работать честно.
struct cpu_state
{
int nextinstructionlinenumber;
char filename[200];
char RLO;
struct instruction instructionlist[30];
int instructionlistnumber;
struct variable variablelist[INSTRUCTIONLIST_SIZE];
int variablelistnumber;
};
struct variable {
//char type[NAME_TYPE_SIZE];
enum EnumType type;
char name[NAME_TYPE_SIZE];
int intvalue;
char boolvalue;
float floatvalue;
};
void AddInstruction(struct cpu_state* pstate, struct instruction* pinstruction){
if (pstate->instructionlistnumber>=INSTRUCTIONLIST_SIZE){return;}
pstate->instructionlist[pstate->instructionlistnumber]=*pinstruction;
pstate->instructionlistnumber ;
}
void parseargument(struct cpu_state *pstate, char name[], struct variable** ppvar){
if (name[0]>='0' amp;amp; name[0]<=9) {
//literal
//(*ppvar)->type=
//(*ppvar)->values=
}
// variable
for (int i=0;i<pstate->variablelistnumber;i ){
if (strcmp(name, pstate->variablelist[i])==0){
*ppvar=amp;pstate->variablelist[i];
return;
}
}
}
Комментарии:
1. Предоставьте полный код в минимальном примере. У нас нет возможности узнать, что
pstate->variablelist[i]
есть. По крайней мере, предоставьте определение структуры.2. Хорошо, я отредактировал свой пост.
3. структурная переменная { //тип символа[NAME_TYPE_SIZE]; тип перечисления EnumType; имя символа[NAME_TYPE_SIZE]; значение int intvalue; логическое значение символа; значение с плавающей запятой; };
4. Я не могу поместить весь код, поэтому я добавил в переменную структуры coments
5. Глядя на определения , которые, я думаю, вы имеете в виду
strcmp(name, pstate->variablelist[i].name)==0)
, но я также думаю, что вы пытаетесь запрограммировать что-то намного выше вашего уровня мастерства.