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

 
 
 
Reply to this topicStart new topic
> Создание структуры в VDSP c глобальным доступом, как создать в VDSP структуры с общим доступом
Andrew32768
сообщение Feb 19 2008, 13:32
Сообщение #1


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

Группа: Свой
Сообщений: 90
Регистрация: 18-06-07
Из: Екатеринбург
Пользователь №: 28 521



Что-то не могу никак разобраться, как в VDSP, в CPP файле создать структуру, а потом в H файле сделать её extern.

например в CPP:


typedef struct FFF
{ char a ;
char b ;
} ;
FFF ggg ;

а как будет выглядеть H файл?:
extern FFF ggg ;

не срабатывает...[size=1]
Go to the top of the page
 
+Quote Post
fontp
сообщение Feb 19 2008, 14:25
Сообщение #2


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(Andrew32768 @ Feb 19 2008, 16:32) *
Что-то не могу никак разобраться, как в VDSP, в CPP файле создать структуру, а потом в H файле сделать её extern.

например в CPP:
typedef struct FFF
{ char a ;
char b ;
} ;
FFF ggg ;

а как будет выглядеть H файл?:
extern FFF ggg ;

не срабатывает...[size=1]


Так Вы тип не объявили, а таг не считается.
Лучше написать

typedef struct FFF_tag
{ char a ;
char b ;
} FFF;

extern FFF ggg;

FFF ggg ;
Go to the top of the page
 
+Quote Post
Ghost2
сообщение Feb 19 2008, 14:50
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 28
Регистрация: 7-11-06
Пользователь №: 22 046



А зачем typedef? Можно просто

/** foo.h
*/
struct foo
{
int i;
};

extern foo foo_var;

/** foo.cpp
*/
#include <foo.h>

foo foo_var;
Go to the top of the page
 
+Quote Post
Andrew32768
сообщение Feb 20 2008, 11:24
Сообщение #4


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

Группа: Свой
Сообщений: 90
Регистрация: 18-06-07
Из: Екатеринбург
Пользователь №: 28 521



Спасибо всем.
Сам разобрался.
оказывается очень выжно, чтобы "разграничить" в начале каждого файла H писать:
#ifndef _SAMPLE_H
#define _SAMPLE_H

и конце
#endif
Go to the top of the page
 
+Quote Post
fontp
сообщение Feb 20 2008, 11:53
Сообщение #5


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(Andrew32768 @ Feb 20 2008, 14:24) *
Спасибо всем.
Сам разобрался.
оказывается очень выжно, чтобы "разграничить" в начале каждого файла H писать:
#ifndef _SAMPLE_H
#define _SAMPLE_H

и конце
#endif


Это всегда было важно, не только для VDSP++. Об этом не принято говорить, но дефективность языка C в отношении интерфейсов (интерфейсы безконтрольно возложены на файловую систему, т.е на неязыковые средства) приводит к самым разным чудесам при многократном включении файлов .h для любых компиляторов
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 27th June 2025 - 22:26
Рейтинг@Mail.ru


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