реклама на сайте
подробности

 
 
> extern struct in KEIL, объявление глобальной стуктуры
Chechelnitsky
сообщение Oct 27 2004, 18:06
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 24
Регистрация: 3-08-04
Пользователь №: 437



Пытаюсь скомпилировать opentcp-arm7-src.zip. Возникла проблема с объявлением глобальной структуры.

Подскажите пожалуйста, а то совсем замучался. Методом тыка нашел комбинацию, которая приемлема для файла main.c, но ошибка возникает в файле tcp.c

Листинг приведен ниже. Компилятор KEIL.

---------------------------------------------------------------------------------------------
file: datatypes.h
---------------------------------------------------------------------------------------------

#ifndef INCLUDE_DATATYPES_H
#define INCLUDE_DATATYPES_H

struct localmach {
int localip;
char localHW[6];
int defgw;
int netmask;
};

typedef struct localmach localmachine_t;

#endif //INCLUDE_DATATYPES_H

---------------------------------------------------------------------------------------------
file: main.c
---------------------------------------------------------------------------------------------

#include "datatypes.h"

localmachine_t localmachine;

int main (void)
{

localmachine.localHW[0] = 0x11;
localmachine.localHW[1] = 0x22;
localmachine.localHW[2] = 0x33;
localmachine.localHW[3] = 0x44;
localmachine.localHW[4] = 0x55;
localmachine.localHW[5] = 0x66;

while (1)
{

}

}

---------------------------------------------------------------------------------------------
file: tcp.c
---------------------------------------------------------------------------------------------

#include "datatypes.h"

extern localmachine_t localmachine;
^^^^^^^^^^^^^^^^^^^^^^^^^^
........

Ошибка: "TCP.C(124): error C53: redefinition of 'localmachine': different compound types"

Это особенность Keil? Или я делаю что-то не так?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DPL
сообщение Oct 28 2004, 05:15
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 88
Регистрация: 15-10-04
Из: Новочеркасск
Пользователь №: 886



Цитата(Chechelnitsky @ Oct 27 2004, 10:06 PM)
Это особенность Keil? Или я делаю что-то не так?

Да нет, все похоже на правду. Интереса ради попробовал пропустить приведенную в сообщении конструкцию через три разных компилятора (Keil C51, Keil C166, Multi 4) - как и следовало ожидать, все компилируется без ошибок. К сожалению, кейловского компилятора ARM у меня нет.

Возможно, приемлемым окажется такое описание структуры:

---------------------------------------------------------------------------------------------
file: datatypes.h
---------------------------------------------------------------------------------------------

#ifndef INCLUDE_DATATYPES_H
#define INCLUDE_DATATYPES_H

typedef struct {
int localip;
char localHW[6];
int defgw;
int netmask;
} localmachine_t;


#endif //INCLUDE_DATATYPES_H

Это, конечно, уже пляски с бубном, но, возможно, такой вариант компилятору понравится.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th August 2025 - 17:19
Рейтинг@Mail.ru


Страница сгенерированна за 0.01985 секунд с 7
ELECTRONIX ©2004-2016