dimka76 42 8 апреля, 2010 Опубликовано 8 апреля, 2010 · Жалоба Есть функиция static volatile UCHAR rcv_buff_U0[265]; UCHAR* Get_Data_U0(void) { return (UCHAR*)rcv_buff_U0; } И ее прототип, объявленный в заголовочном файле UCHAR* Get_Data_U0(void); Как правильно ее сделать inline функцией с аттрибутом __attribute__((always_inline)) так, чтобы ее можно было вызывать из функций, реализованных в других файлах проекта ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 8 апреля, 2010 Опубликовано 8 апреля, 2010 · Жалоба Определить её тело в заголовочном файле вместе с атрибутом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 8 апреля, 2010 Опубликовано 8 апреля, 2010 · Жалоба Определить её тело в заголовочном файле вместе с атрибутом. А что делать с возвращаемым значением?. Она у меня возвращает адрес глобальной переменной, глобальной для того файла, в котором она реализована. Что-то типа стиля С++, файл с реализациями функций как класс в С++. Кстати, нашел похожую тему здесь. И если я правильно понял, то ничего не получится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 8 апреля, 2010 Опубликовано 8 апреля, 2010 · Жалоба Можно внутри функции в file.h написать: static inline __attribute__((always_inline)) int foo(int i) { extern int x[]; return (x[i]); } А в файле реализации убрать static перед int x[]; Конечно, не совсем кошерно, но это ИМХО единственный способ скрыть глобальную переменную.... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
dimka76 42 8 апреля, 2010 Опубликовано 8 апреля, 2010 · Жалоба Можно внутри функции в file.h написать: .......................................... Конечно, не совсем кошерно, но это ИМХО единственный способ скрыть глобальную переменную.... Спасибо !!! Все получилось :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться