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

 
 
8 страниц V  « < 6 7 8  
Reply to this topicStart new topic
> модификатор const. Как правильно использовать в Си
AHTOXA
сообщение Feb 2 2018, 19:11
Сообщение #106


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(alx.bilous @ Feb 2 2018, 21:28) *
даже веб интерфейс есть https://cdecl.org

На вот это
Код
char(*(*func(void))[3])(void)

он пишет: "syntax error" sm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Feb 2 2018, 20:09
Сообщение #107


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



gcc при этом возражений не имеет


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
alx.bilous
сообщение Feb 2 2018, 20:55
Сообщение #108


Участник
*

Группа: Участник
Сообщений: 20
Регистрация: 18-03-12
Пользователь №: 70 865



так уж получилось что func здесь зарезервированное слово

cdecl> explain char(*(*fffff(void))[3])(void)
declare fffff as function (void) returning pointer to array 3 of pointer to function (void) returning char
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 2 2018, 21:02
Сообщение #109


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(alx.bilous @ Feb 3 2018, 01:55) *
declare fffff as function (void) returning pointer to array 3 of pointer to function (void) returning char

Хрен редьки не слащеsm.gif

ЗЫ. Спасибо за инфу о cdecl, не знал.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
501-q
сообщение Apr 8 2018, 19:36
Сообщение #110


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 24-02-09
Из: Екатеринбург
Пользователь №: 45 296



Цитата(Arlleex @ Jan 30 2018, 15:38) *
Технически любое имя функции - это есть указатель. Даже
Код
void f1(void);

Согласно Вашей логике, f1 - не функция? Стандартописатели из комитета ANSI C ошиблись с терминологией? rolleyes.gif

Ну да, f1 не функция, а имя функции. Значением f1 является адрес функции. Две записи абсолютно одинаковы:
Код
void (*v1)(void) = f1;
void (*v2)(void) = &f1;

Для адреса функции оператор () выполняет вызов соответствующей функции. Т.е. вызов функции по известному адресу можно сделать так:
Код
(void (*)(int)) 0x1000 (5);


Илья

Сообщение отредактировал 501-q - Apr 8 2018, 20:00
Go to the top of the page
 
+Quote Post
asnoeuh
сообщение May 23 2018, 08:05
Сообщение #111





Группа: Участник
Сообщений: 9
Регистрация: 31-08-16
Пользователь №: 93 165



Удобно для расшифровки выражение подобных char (*(*func(void))[3])(void); пользоваться The "Clockwise/Spiral Rule''

Я в голове ещё держу - "Начало отсчёта "12:00" - начало суток, и в нормальном течении времени..."

Сообщение отредактировал asnoeuh - May 23 2018, 08:05
Go to the top of the page
 
+Quote Post

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

 


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


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