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

 
 
> Указатель на функцию
Danis
сообщение May 30 2011, 06:35
Сообщение #1


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



При переносе кода виртуального порта (USB-COM) от ST, столкнулся с такой конструкцией:

uint8_t *(*CopyRoutine)(uint16_t);

Немного пришлось скорректировать код, поскольку у меня проект на С++, NULL заменил на 0. В принципе все работает. Но так толком и не смог назвать CopyRoutine, ну если бы не было левой звездочки, был бы указатель на функцию, а так пока не встречал в своей практике такую конструкцию. Вообщем как ”оно”(CopyRoutine) называется?

Вырезка и листинга:

RESULT Virtual_Com_Port_Data_Setup(uint8_t RequestNo)
{
uint8_t *(*CopyRoutine)(uint16_t);

CopyRoutine = NULL;

……..

NULL определен так:
#define NULL ((void *)0)


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Idle
сообщение May 31 2011, 18:22
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 351
Регистрация: 5-04-05
Пользователь №: 3 874



чтобы не морочить голову ни себе и ни людям, typedef не использую и тебе не советую
http://lxr.linux.no/#linux+v2.6.39/Documen...odingStyle#L277
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jun 1 2011, 04:45
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Это очень индивидуально.
И с данным утверждением (вернее с рекомендацией) можно как соглашаться так и нет.
Лично мне гораздо удобнее и понятнее читать код где присутствует как можно меньше лишных буковок, typedef в этом плане абсолютно безопасен и стандартен.
После продолжительного опыта программирования на объектных языках программирования проникаешься идеологией типов разных сущностный.
И это очень хорошо на мой взгляд. Я действительно при программировании на С придерживаюсь linux-CodingStyle, но не слепо и огульно...
Это сродни подмеченному нами в одном из обсуждений моменту - невозможно научиться грамотно писать на асме не поняв суть процедурного языка программирования.
И тут я хочу провести красной нитью мысль о невозможности хорошо программировать на С не понимая принципов объектно-ориентированного программирования.
И так фактически во всём. Сейчас много псевдо-программистов, которые окромя одной технологии или фреймворка ничего не видели и не знают. И мы с Вами наблюдаем огромное количество кода никакого качества, даже от именитых вендеров. К чему это я всё? Да к тому что нужно своей головой больше думать и не принимать за чистую монету всё то новое, что увидел, узнал или прочитал.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 08:11
Рейтинг@Mail.ru


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