Im создает таблицу символов, и им трудно записывать get_symbol, в котором есть аргументы (symbol_table symtab, char sym). Мне нужно написать код для двух функций get_symbol и set_symbol, у меня возникли проблемы с пониманием того, что такое таблица символов и как записать эти две функции. он говорит, что get_symbol() имеет два аргумента: таблицу символов и имя символа, значение которого должно быть восстановлено. Если имя символа является одним из A, B, C, то соответствующее значение из таблицы символов должно быть возвращено. если это не одно из этих имен, то 0 должно быть возвращено. Если бы кто-нибудь мог помочь, это было бы большой благодарностью за ваше время.Функция get_symbol в C
symbol_table.c Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "globals.h"
#include "symbol_table.h"
typedef struct symbol_table_s {
int a,b,c;
}*symbol_table_rep;
status init_symbol_table (symbol_table *p_symtab)
{
symbol_table_rep st = malloc(sizeof(struct symbol_table_s));
if (st == NULL)
return ERROR;
st->a = st->b = st->c = 0;
*p_symtab = (symbol_table) st;
return OK;
}
void destroy_symbol_table (symbol_table *p_symtab)
{
free(*p_symtab);
*p_symtab = NULL;
}
void set_symbol(symbol_table *p_symtab, char sym, int value)
{
/* WRITE CODE FOR THIS */
}
int get_symbol (symbol_table symtab, char sym)
{
/* WRITE CODE FOR THIS FUNCTION */
symbol_table_rep symtab;
if (A,B,C)
{
return symbol_table;
}else{
return 0;
}
}
symbol_table.h Code:
#ifndef _SYMBOL_TABLE_H
#define _SYMBOL_TABLE_H
#include "globals.h"
ABSTRACT_TYPE(symbol_table);
status init_symbol_table (symbol_table *p_symtab);
void destroy_symbol_table(symbol_table *p_symtab);
void set_symbol (symbol_table *p_symtab, char sym, int value);
int get_symbol (symbol_table symtab, char sym);
#endif
Я понял из вашего вопроса то, чего вы пытаетесь достичь, но я не понял, с чем именно * вы боретесь. С какой именно частью вы обращаетесь за помощью? Указание на то, что явным образом, вероятно, поможет вам получить лучшие ответы. – amit
@amit im пытается записать две функции и не знает, с чего начать. – Cka91405
Какова цель выражения 'if (A, B, C)'? В то время как правовая, вы не объявили какую-либо переменную, и только 'C' фактически будет использоваться в качестве логического выражения. –