The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Что за __THROW в glibc?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Что за __THROW в glibc?" 
Сообщение от vizbash emailИскать по авторуВ закладки(ok) on 07-Дек-05, 14:14  (MSK)
Решил покопаться в исходниках glibc и натолкнулся
на подобные объявления:

extern int atoi (__const char *__nptr) __THROW __attribute_pure__;

Что есть __THROW?
И что такое __attribute_pure__?

И вообще. Разве можно, с точки зрения синтаксиса, что-то писать
после закрывающей скобки в объявлении функции???

  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]

1. "Что за __THROW в glibc?" 
Сообщение от chip emailИскать по авторуВ закладки(ok) on 07-Дек-05, 17:26  (MSK)
>Решил покопаться в исходниках glibc и натолкнулся
>на подобные объявления:
>
>extern int atoi (__const char *__nptr) __THROW __attribute_pure__;
>
>Что есть __THROW?
>И что такое __attribute_pure__?

Это расширения GNU GCC. см. info gcc . Касательно __attribute__ пункт 5.24

>И вообще. Разве можно, с точки зрения синтаксиса, что-то писать
>после закрывающей скобки в объявлении функции???

С точки зрения ANSI-C99 нельзя. С точки зрения компилятора всё возможно :)

Пример, конструктора/деструктора на Cи :)

#include <stdio.h>
void init() __attribute__ ((constructor));
void finit() __attribute__ ((destructor));

void init() { fprintf(stderr, "init()\n"); }
void finit() { fprintf(stderr, "finit()\n"); }
int main(int argc, char *argv[]) { fprintf(stderr, "main()\n"); return 0; }

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Что за __THROW в glibc?" 
Сообщение от vizbash emailИскать по авторуВ закладки(ok) on 08-Дек-05, 12:51  (MSK)
>>Решил покопаться в исходниках glibc и натолкнулся
>>на подобные объявления:
>>
>>extern int atoi (__const char *__nptr) __THROW __attribute_pure__;
>>
>>Что есть __THROW?
>>И что такое __attribute_pure__?
>
>Это расширения GNU GCC. см. info gcc . Касательно __attribute__ пункт 5.24
>
>
>>И вообще. Разве можно, с точки зрения синтаксиса, что-то писать
>>после закрывающей скобки в объявлении функции???
>
>С точки зрения ANSI-C99 нельзя. С точки зрения компилятора всё возможно :)
>
>
>Пример, конструктора/деструктора на Cи :)
>
>#include <stdio.h>
>void init() __attribute__ ((constructor));
>void finit() __attribute__ ((destructor));
>
>void init() { fprintf(stderr, "init()\n"); }
>void finit() { fprintf(stderr, "finit()\n"); }
>int main(int argc, char *argv[]) { fprintf(stderr, "main()\n"); return 0; }


С этим понятно. Спасибо.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру