У меня есть этот код
if (hashtable_count(h) > 0)
{
do {
kk = (key*)hashtable_iterator_key(itr);
v =(value*) hashtable_iterator_value(itr);
....
ключ и значение оба объявлены в том же блоке кода, что и
struct key *k, *kk;
struct value *v;
и VC 2010 сообщает о следующей ошибке
ошибка C2065: «ключ»: необъявленный идентификатор
ошибка C2059: синтаксическая ошибка: ')'
ошибка C2065: 'значение': необъявленный идентификатор
ошибка C2059: синтаксическая ошибка: ')'
ошибки для двух строк назначения. Две первые ошибки относятся к первому оператору присваивания, а следующие - к последнему.
Я буду рад предоставить более подробную информацию, если потребуется.
Дополнительная информация:
Вот две функции
void * hashtable_iterator_key(struct hashtable_itr *i)
{ return i->e->k; }
void * hashtable_iterator_value(struct hashtable_itr *i)
{ return i->e->v; }
Если я не наберу приведение возвращенного значения к ключу *, он сообщит об ошибке несоответствия типов