информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Портрет посетителяАтака на InternetSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 С наступающим 
 Microsoft обещает радикально усилить... 
 Ядро Linux избавляется от российских... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Там *расширения* другие 05.11.04 17:45  Число просмотров: 1521
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
В режиме совместимости с ANSI компилиться не будет
<programming>
gcc против msvc 02.11.04 14:59  
Автор: zelych Статус: Member
<"чистая" ссылка>
Есть небольшой кусочек исходников из линуксового ядра. Хотелось бы откомпилировать его под msvc с минималными изменениями.

возникает непонятный трабл: error C2054: expected '(' to follow 'inline'

static inline struct reiserfs_inide_info* REISERFS_I(const struct inode *inode)
{
return container_of(inode, struct reiserfs_inode_info, vfs_inode);
}

и ещё вопросик. Зачем двоеточия нужны??

struct offset_v2 {
#ifdef __LITTLE_ENDIAN
__u64 k_offset:60;
__u64 k_type: 4;
#else
__u64 k_type: 4;
__u64 k_offset:60;
#endif
}_attribute_(_packed_);

интуитивно, вроде, размер структуры 8 байт, только поделили её на две части 7.5 и 0.5 байта..
забыл только посмотреть как всё это дальше используется..
Дык нету в стандартном C слова inline. MSVC распознает его... 02.11.04 15:47  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> возникает непонятный трабл: error C2054: expected '(' to
> follow 'inline'
>
> static inline struct reiserfs_inide_info* REISERFS_I(const
> struct inode *inode)
> {
> return container_of(inode, struct reiserfs_inode_info,
> vfs_inode);
> }
Дык нету в стандартном C слова inline. MSVC распознает его как идентификатор и пытается распознать объявление прототипа функции. Вот и ждет скобку. Или компили как C++ или используй MSVC-шное расширение __inline (или __forceinline), которое работает и в C.

> и ещё вопросик. Зачем двоеточия нужны??
>
> struct offset_v2 {
> #ifdef __LITTLE_ENDIAN
> __u64 k_offset:60;
> __u64 k_type: 4;
> #else
> __u64 k_type: 4;
> __u64 k_offset:60;
> #endif
> }_attribute_(_packed_);
>
> интуитивно, вроде, размер структуры 8 байт, только поделили
> её на две части 7.5 и 0.5 байта..
> забыл только посмотреть как всё это дальше используется..
Дык это т.н. битовые поля. Именно так как интуитивно понял они и используются.
а почему gcc компилит?? или там стандарты другие? 05.11.04 17:20  
Автор: zelych Статус: Member
<"чистая" ссылка>
Там *расширения* другие 05.11.04 17:45  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
В режиме совместимости с ANSI компилиться не будет
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach