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

 
 
> Как лучше описать регистры, оставить как есть в uint32_t или в битовых полях
toweroff
сообщение Aug 8 2014, 21:43
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



Доброго времени

Есть у меня некий хидер для LPC177x
Там описан volatile регистр, к примеру IOCON, потом регистр пина, к которым доступ примерно такой - LPC_IOCON->P0_0 = xxx;
Я тут устал считать биты, описал в виде полей типы вот так:
Код
typedef struct
{
    union
    {
        __IO uint32_t D_IOCON;
        struct
        {
            __IO uint32_t FUNC        : 3;
            __IO uint32_t MODE        : 2;
            __IO uint32_t HYS        : 1;
            __IO uint32_t INV        : 1;
                 uint32_t RESERVED0    : 2;
            __IO uint32_t SLEW        : 1;
            __IO uint32_t OD        : 1;
                 uint32_t RESERVED1    : 21;
        };
    };
} LPC_PIN_TypeD_TypeDef;


но, разумеется, из-за vilatile код генерится в два этапа:
Код
;;;75         LPC_IOCON->P2_24.FUNC = 0; // GPIO pin
00000c  4921              LDR      r1,|L1.148|
00000e  f8d12160          LDR      r2,[r1,#0x160]
000012  f0220207          BIC      r2,r2,#7
000016  f8c12160          STR      r2,[r1,#0x160]
;;;76         LPC_IOCON->P2_24.MODE = 2; // Pullup enabled
00001a  f8d12160          LDR      r2,[r1,#0x160]
00001e  f0220218          BIC      r2,r2,#0x18
000022  3210              ADDS     r2,r2,#0x10
000024  f8c12160          STR      r2,[r1,#0x160]


как можно заставить компилятор генерить код в один этап?
Go to the top of the page
 
+Quote Post
3 страниц V  < 1 2 3 >  
Start new topic
Ответов (15 - 29)
AHTOXA
сообщение Aug 11 2014, 11:59
Сообщение #16


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

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



Цитата(AlexandrY @ Aug 11 2014, 16:43) *
В таких поисках время можно сэкономить если все деражать в одном месте

Вот про это я вам и говорюsm.gif А у вас они лежат в каждом файле, где вы обращаетесь к соответствующему регистру. Если потребуется что-то исправить, то будет кошмар. В отличие от "определения битов где-то еще в макросах". Там всё в одном месте, и потребуется всего одно исправление для всех мест в проекте и всех проектов.
Цитата(AlexandrY @ Aug 11 2014, 16:43) *
Если мне нужно еще раз использовать тот-же регистр в другом месте, то я опять копирую все определения битов в присваивании. Дело в том, что таких повторных использований реально очень мало.

Кошмар.
Цитата(AlexandrY @ Aug 11 2014, 16:43) *
Но избыточность оправдывается экономией времени на входжение в контекст.

При наличии современных IDE - никакой разницы. Подношу мышку к названию бита - получаю всплывающую подсказку с его значением.
Цитата(AlexandrY @ Aug 11 2014, 16:43) *
Т.е. цель не экономить процессорное время (причем на редких и однократных операциях), а экономить свое время.

Не вижу экономии, вижу как раз наоборот.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Aug 11 2014, 12:40
Сообщение #17


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(AHTOXA @ Aug 11 2014, 14:59) *
Вот про это я вам и говорюsm.gif А у вас они лежат в каждом файле, где вы обращаетесь к соответствующему регистру. Если потребуется что-то исправить, то будет кошмар. В отличие от "определения битов где-то еще в макросах". Там всё в одном месте, и потребуется всего одно исправление для всех мест в проекте и всех проектов.


Правильно, в каждом файле своя периферия. Гораздо быстрее прочитать название файла и понять для какой он периферии. Открыл и знаешь, что больше никаких файлов и зависимостей.
И не надо гадать где бы еще поискать источники влияния на периферию.

Цитата(AHTOXA @ Aug 11 2014, 14:59) *
Кошмар.

Назовите хоть пару кофигурационных периферийных регистров которые вы больше 3-х раз где-то используете.

Цитата(AHTOXA @ Aug 11 2014, 14:59) *
При наличии современных IDE - никакой разницы. Подношу мышку к названию бита - получаю всплывающую подсказку с его значением.


Ага навел мышку на макрос запомнил, навел мышку на другой опять запомнил, ... навел на десятый, а про первый уже и забыл. И так пол дня мышкой возить пока все не запомниться. biggrin.gif
А зачем запоминать? Только ради призрачной надежды что когда-то получиться одновремено аж в трех местах изменить бит?
На моей практике такого как-то не удавалось.

Цитата(AHTOXA @ Aug 11 2014, 14:59) *
Не вижу экономии, вижу как раз наоборот.


Еще бы вы это видели. Это чисто психологические неосознаваемые моменты.
Возможно у вас другой тип памяти.

Но опытные тренеры говорят, что все профессионалы рано или поздно приходят к одной технике.
Программирую уже лет 15-ть, а вы?
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 11 2014, 14:50
Сообщение #18


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

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



Цитата(AlexandrY @ Aug 11 2014, 18:40) *
Правильно, в каждом файле своя периферия. Гораздо быстрее прочитать название файла и понять для какой он периферии. Открыл и знаешь, что больше никаких файлов и зависимостей.
И не надо гадать где бы еще поискать источники влияния на периферию.

Так и у меня может быть по файлу на каждую периферию. Это не суть. Суть в том, что у меня есть мнемоники/дефайны для битов/групп бит конфигурации, а у вас они циферками. Мои мнемоники - определены в одном файле, используются везде где надо. Ваши циферки - определены в каждом файле, где используются.
Ваш вариант:
Код
  FTM1->QDCTRL  = 0
                  + LSHIFT(1, 7) // PHAFLTREN | Phase A Input Filter Enable

Мой вариант:
Код
FTM1->QDCTRL  = 0
                  | (1UL << PHAFLTREN) // Phase A Input Filter Enable
,
и PHAFLTREN определён в отдельном файле.
Вообще, я был уверен, что уже давно все поняли полезность дефайнов и отстойность "магических чисел". Оказывается, нет.

Цитата(AlexandrY @ Aug 11 2014, 18:40) *
Назовите хоть пару кофигурационных периферийных регистров которые вы больше 3-х раз где-то используете.

Ну, например, я работаю с пятью таймерами, и включаю/выключаю их по хитрой программе.
Кроме того, каждый периферийный регистр используется явно более чем в одном проекте.
Цитата(AlexandrY @ Aug 11 2014, 18:40) *
Ага навел мышку на макрос запомнил, навел мышку на другой опять запомнил, ... навел на десятый, а про первый уже и забыл.

Зачем запоминать? Вы свои циферки запоминаете что ли? Какой кошмарsm.gif
Цитата(AlexandrY @ Aug 11 2014, 18:40) *
А зачем запоминать? Только ради призрачной надежды что когда-то получиться одновремено аж в трех местах изменить бит?

Я вот тоже не понимаю, зачем запоминать.
Цитата(AlexandrY @ Aug 11 2014, 18:40) *
Но опытные тренеры говорят, что все профессионалы рано или поздно приходят к одной технике.
Программирую уже лет 15-ть, а вы?

Насколько я могу судить, практически все профессионалы, кроме вас, всё-таки избегают использования "magic numbers".
ЗЫ. Профессионально программирую уже более 20 лет. А до этого был любителемsm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Aug 11 2014, 17:22
Сообщение #19


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(AHTOXA @ Aug 11 2014, 17:50) *
Насколько я могу судить, практически все профессионалы, кроме вас, всё-таки избегают использования "magic numbers".
ЗЫ. Профессионально программирую уже более 20 лет. А до этого был любителемsm.gif


Магическими числа называют так потому что не ясен их смысл.
Биты регистров сложных SoC это больше чем магические числа, а потому просто обозвав из каким-то дифайном магия не пропадет, а может даже усилиться.
Мало того, в чипах как правило функции с пары десятков битов еще зависят от других битов, а то и от последовательности бит.

Я не поверю чтобы вы без мануала смогли бы в течении хотя бы 10-и минут что-то попрограммировать с использованием регистров в периферийных модулях.
Так если все равно перед вами постоянно открытый мануал, зачем еще скрывать биты за бессмысленными названиями?
Или таким образом закрепить ассоциативные связи в памяти?

Я не прикалываюсь, действительно интересно как структурировать исходники чтобы не перенапрягать мозг.
Скажем одно только рутинное переключенеие экрана с текстов на хидеры в процессе редактирования я уже считаю вредным, и рассеивающим внимание. А сколько сил уходит на придумывание именований дефайнов для битов? Это все надо учитывать.

20 лет программировать на C-и встраиваемые системы... Что-то мало правдоподобно.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 11 2014, 18:24
Сообщение #20


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

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



Цитата(AlexandrY @ Aug 11 2014, 23:22) *
Магическими числа называют так потому что не ясен их смысл.

В вашем варианте смысл как раз неясен. Вы сами пишете рядом с числом его мнемонику. Видимо, чем-то она вам помогает?
Опять же, вы уже несколько раз аккуратно проигнорировали мой аргумент о возможной многократной правке кучи файлов в случае ошибки. Ещё плохой сценарий - в паре мест исправили, в третьем -- забыли. И самое главное - ради чего всё это? Пока не прозвучало ни одного внятного аргумента "за". Только отсылки к какому-то высшему знанию.
Кстати, вы знакомы с понятием "нормализация"? Вот, вынос дефайна в отдельный хидер - это как раз она и есть. Исключение дублирования информации.
Цитата(AlexandrY @ Aug 11 2014, 23:22) *
Я не поверю чтобы вы без мануала смогли бы в течении хотя бы 10-и минут что-то попрограммировать с использованием регистров в периферийных модулях.

Мануал открыт при написании хидера. Описываем регистр (адрес), описываем маски для полей регистра. Пишем коммент (копипастим из мануала). Всё. В дальнейшем мануал не нужен - у нас есть хидер.
Кроме того, важно не только удобство программирования, но и удобство сопровождения. А сопровождать гораздо удобнее мнемоники, нежели магические цифры. Искать по тексту - тоже удобнее мнемоники.
Цитата(AlexandrY @ Aug 11 2014, 23:22) *
Я не прикалываюсь, действительно интересно как структурировать исходники чтобы не перенапрягать мозг.
Что-то малоправдоподобно sm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Aug 11 2014, 19:03
Сообщение #21


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(AHTOXA @ Aug 11 2014, 21:24) *
В вашем варианте смысл как раз неясен. Вы сами пишете рядом с числом его мнемонику. Видимо, чем-то она вам помогает?


Да пишу чтобы по принятой производителем мнемонике легче организовать поиск в мануале.
Ибо без мануала исходники инициализации периферии нет смысла даже открывать.


Цитата(AHTOXA @ Aug 11 2014, 21:24) *
Опять же, вы уже несколько раз аккуратно проигнорировали мой аргумент о возможной многократной правке кучи файлов в случае ошибки. Ещё плохой сценарий - в паре мест исправили, в третьем -- забыли. И самое главное - ради чего всё это? Пока не прозвучало ни одного внятного аргумента "за". Только отсылки к какому-то высшему знанию.


Не проигнорировал, а наверно я непонятно написал.
Дело в том, что если вам пришлось менять позицию бита или маску во многих местах проекта да еще в нескольких проектах, то это уже катастрофа.
Это сбой в методологии.
После каждой новой строчки в процедурах работы с периферией у меня следует немедленное тестирование.
Как тут может оказаться неправильный бит?
Это может оказаться только по причине плохого качества документации.
Но если почувствовали подвох в документации то уж будьте уверены перепроверите все свои макросы, и вот тогда встанет в полный рост проблема избыточных дифайнов.
И это более реалистичный сценарий, чем какой-то перепутанный бит.

Цитата(AHTOXA @ Aug 11 2014, 21:24) *
Кстати, вы знакомы с понятием "нормализация"? Вот, вынос дефайна в отдельный хидер - это как раз она и есть. Исключение дублирования информации.

Эт мимо, исходники нужны человеку. А человеку чем больше избыточность тем лучше работает память.

Цитата(AHTOXA @ Aug 11 2014, 21:24) *
Мануал открыт при написании хидера. Описываем регистр (адрес), описываем маски для полей регистра. Пишем коммент (копипастим из мануала). Всё. В дальнейшем мануал не нужен - у нас есть хидер.
Кроме того, важно не только удобство программирования, но и удобство сопровождения. А сопровождать гораздо удобнее мнемоники, нежели магические цифры. Искать по тексту - тоже удобнее мнемоники.

Вот в эти байки я и не верю, якобы хидеры заменяют мануал.
Сопровождение тоже этакий миф. Удобство сопровождения кому. Стороннему программисту?
Так стороннему программисту что угодно напиши он всегда будет плеваться.
А автору исходников мало что облегчит если он вздумает вдруг поменять скажем битовую маску в хидере. Все равно придется лезть во все исходники где она применялась и разбираться с каждым случаем.
Так что же тогда облегчают хидеры? (Еще напомню, что говорим только о битах периферии, а не о всем на свете biggrin.gif )

Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 11 2014, 21:54
Сообщение #22


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

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



Цитата(AlexandrY @ Aug 12 2014, 01:03) *
Да пишу чтобы по принятой производителем мнемонике легче организовать поиск в мануале.
Ибо без мануала исходники инициализации периферии нет смысла даже открывать.

Если у вас в исходниках (в соответствующем хидере) продублировано описание регистров из мануала, то зачем мануал? sm.gif
Опять же, поиск по исходникам обеспечивает IDE, не надо переключать внимание код<==>мануал.
Если правильно организовать имена, то автодополнение тоже очень помогает: пишу
FLASH->CR |= FLASH_CR_
, нажимаю комбинацию клавиш, вуяля, передо мной все нужные варианты.

Цитата(AlexandrY @ Aug 12 2014, 01:03) *
Дело в том, что если вам пришлось менять позицию бита или маску во многих местах проекта да еще в нескольких проектах, то это уже катастрофа.
Это сбой в методологии.

Или банальная ошибка/опечатка. Скажете, с вами такого не бывает? Значит вы второй такой уникум в мире (после меняsm.gif)

Цитата(AlexandrY @ Aug 12 2014, 01:03) *
После каждой новой строчки в процедурах работы с периферией у меня следует немедленное тестирование.

Ну это уже совсем "что-то малоправдоподобно" sm.gif. К тому же, не все ошибки можно быстро выявить тестированием.

Цитата(AlexandrY @ Aug 12 2014, 01:03) *
Как тут может оказаться неправильный бит?
Это может оказаться только по причине плохого качества документации.

Да, бывают ошибки в документации. И тут ваш подход в пролёте - вам придётся исправлять во многих файлах. Причём поиск будет возможен только по комментарию (мнемоника-то только там), и ничто не может гарантировать, что комментарий соответствует значению. Этого даже тестирование после каждой строчки не выявит.
Я же исправлю в одном хидере, и всё. Причём найду нужный дефайн безошибочно, потому что в его имени есть мнемоника от производителя.

Цитата(AlexandrY @ Aug 12 2014, 01:03) *
Но если почувствовали подвох в документации то уж будьте уверены перепроверите все свои макросы, и вот тогда встанет в полный рост проблема избыточных дифайнов.
И это более реалистичный сценарий, чем какой-то перепутанный бит.

Какие-такие "все макросы"? Один дефайн, в одном файле. А вот вы помучаетесь.

Цитата(AlexandrY @ Aug 12 2014, 01:03) *
Эт мимо, исходники нужны человеку. А человеку чем больше избыточность тем лучше работает память.

Во-первых, память не бездонна. Во-вторых, незачем забивать её несущественными деталями. Номер бита - информация лишняя. Мне нужно взвести/сбросить бит разрешения работы (EN) в регистре BDCR, я просто пишу RCC->BDCR |= RCC_BDCR_RTCEN. И мне неважно, какой номер у этого регистра.

Цитата(AlexandrY @ Aug 12 2014, 01:03) *
Вот в эти байки я и не верю, якобы хидеры заменяют мануал.

Если перепишете всё из мануала в хидер, то почему нет? sm.gif

Цитата(AlexandrY @ Aug 12 2014, 01:03) *
Сопровождение тоже этакий миф. Удобство сопровождения кому. Стороннему программисту?

В первую очередь себе. Удобства сопровождения я описал уже несколько раз.

Цитата(AlexandrY @ Aug 12 2014, 01:03) *
А автору исходников мало что облегчит если он вздумает вдруг поменять скажем битовую маску в хидере. Все равно придется лезть во все исходники где она применялась и разбираться с каждым случаем.

Зачем лезть во все исходники, где применялась маска? Исправлять нужно только в одном месте - где маска определялась. А в остальных местах её новое значение подставит препроцессорsm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
menzoda
сообщение Aug 12 2014, 12:44
Сообщение #23


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 13-09-12
Пользователь №: 73 530



Цитата(AHTOXA @ Aug 12 2014, 01:54) *
Пишем коммент (копипастим из мануала)...
Если перепишете всё из мануала в хидер, то почему нет?..

Вот это точно бестолковое занятие. В большинстве ситуаций одним небольшим комментарием работу с регистром не опишешь, да что там, и большим тоже не опишешь. Что теперь, перепечатывать 200-страничный документ в заголовочный файл? Нет конечно! Никаких комментариев тут вообще не нужно, пустая трата времени.

Насчет именования конкретных битов регистра. В принципе, несмотря на громоздкость, это довольно удобно, за исключением случаев, где регистр имеет нетривиальную структуру, а не несколько битов вкл/выкл. К сожалению, регистры в основном имеют как раз сложную структуру, и красивый по задумке код:
Код
TIMCON = TIMCON_ENA
       | TIMCON_RST
       | TIMCON_UP
       | TIMCON_DOWN;

превращается в шараду:
Код
TIMCON &= ~TIMCON_ENA & ~TIMCON_PSC_2;
TIMCON |= TIMCON_ENA
       | TIMCON_RST
       | TIMCON_PSC_1
       | TIMCON_PSC_3

в которой без бумажки с калькулятором и документации не разберешся. Конечно, можно каждой допустимой комбинации битов присвоить свое имя, но это выльется в большое количество макросов и кучу потраченного времени.

Лично мне лень этим заниматься, да и от чтения документации все эти имена меня не особо спасают, поэтому я делаю совсем просто: магическое число и комментарий о том, что там делается:
Код
// Останавливает таймер, задает значения предделителя и период таймера,
// разрешает прерывание, активирует режим захвата, запускает таймер.
TIMCON &= 0xA0FF;
TIMCON |= 0x8001;

Комментарий помогает в общих чертах понять суть действа, а если нужно что-то поменять - то так и так лезть в даташит. Да и редко, на самом деле, приходится что-то менять в низкоуровневых модулях, общающихся с периферией.
Go to the top of the page
 
+Quote Post
ViKo
сообщение Aug 12 2014, 13:24
Сообщение #24


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Для menzoda - мне ваш первый пример логичнее, понятнее. А во втором легко сделать ошибку.
Кстати, первый пример можно упростить.
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Aug 12 2014, 13:48
Сообщение #25


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(AHTOXA @ Aug 12 2014, 00:54) *
Во-первых, память не бездонна. Во-вторых, незачем забивать её несущественными деталями. Номер бита - информация лишняя. Мне нужно взвести/сбросить бит разрешения работы (EN) в регистре BDCR, я просто пишу RCC->BDCR |= RCC_BDCR_RTCEN. И мне неважно, какой номер у этого регистра.


Наша память ассоциативна. В этом смысле она бездонна.
Вас же не напрягает, что ваше зрение постоянно получает поток в несколько гиг в сек несжатого видео.
Но запоминаете вы не видео, а что сами не знаете.

Лучше написать длинный коментарий но прямо радом с битом, чем обозвать бит мнемоникой у вместе с комментариями увести в хидер.
А номера битов конечно я не запоминаю, главное здесь комментрарии. Они понятно не полные, но мощнее активизируют ассоциации чем мнемоники.
С удовольствием вставлял бы линки прямо на мануал, но редакторы такой технологии не поддерживают.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 12 2014, 14:20
Сообщение #26


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

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



Цитата(menzoda @ Aug 12 2014, 18:44) *
Вот это точно бестолковое занятие.

Это была гипербола, мне жаль, что вы не поняли.

Цитата(menzoda @ Aug 12 2014, 18:44) *
поэтому я делаю совсем просто: магическое число и комментарий о том, что там делается:

Вы тоже начинали с PIC-ов? sm.gif

AlexandrY, поздравляю, ваш тонкий троллинг уже даёт всходы.

Цитата(AlexandrY @ Aug 12 2014, 19:48) *
Наша память ассоциативна. В этом смысле она бездонна.

Эот вы ещё маловато программируете, всего 15 лет. Вот после 20 лет вы поймёте, что у нашей памяти есть дноsm.gif
Цитата(AlexandrY @ Aug 12 2014, 19:48) *
Лучше написать длинный коментарий но прямо радом с битом, чем обозвать бит мнемоникой у вместе с комментариями увести в хидер.

Я так и не услышал от вас аргументов, чем этот подход лучше. И не услышу, по всей видимости.
Свои аргументы, чем этот подход хуже, я уже привёл.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
menzoda
сообщение Aug 12 2014, 14:57
Сообщение #27


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 13-09-12
Пользователь №: 73 530



Цитата(AHTOXA @ Aug 12 2014, 18:20) *
Это была гипербола, мне жаль, что вы не поняли.

Там же я процитировал и предыдущую твою фразу (извини, не люблю ВЫкать в интернетах), которая была не гиперболой. Странно, что ты ее не заметил, или только сделал вид? Кроме того я высказался не только и не сколько про абсурдное "переписать весь мануал", которое и так всем понятно, сколько про "копипастим коммент из мануала".

Цитата(AHTOXA @ Aug 12 2014, 18:20) *
Вы тоже начинали с PIC-ов? sm.gif

Нет, с TMS32F28xx от Texas Instruments и LH75401 от тогда еще Phillips, если это имеет какое-то значение. С PIC приходится иметь дело всего в одном устройстве, и мне не особо нравятся эти моменты.

Сообщение отредактировал menzoda - Aug 12 2014, 15:01
Go to the top of the page
 
+Quote Post
Herz
сообщение Aug 12 2014, 20:20
Сообщение #28


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Цитата(menzoda @ Aug 12 2014, 17:57) *
(извини, не люблю ВЫкать в интернетах)

Я всё же попросил бы Вас об этом одолжении. Не все любят, когда им ТЫкают,особенно незнакомые люди, и интернеты - не исключение.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Aug 12 2014, 20:57
Сообщение #29


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

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



Цитата(menzoda @ Aug 12 2014, 20:57) *
Там же я процитировал и предыдущую твою фразу (извини, не люблю ВЫкать в интернетах), которая была не гиперболой. Странно, что ты ее не заметил, или только сделал вид? Кроме того я высказался не только и не сколько про абсурдное "переписать весь мануал", которое и так всем понятно, сколько про "копипастим коммент из мануала".


Я не против общения на "ты", но продолжу на "вы", тут так принято.
По вашему примеру кода я сразу понял, что случай клинический, поэтому не стал на ваш пост реагировать всерьёз. Вы уж извините.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
menzoda
сообщение Aug 14 2014, 07:19
Сообщение #30


Участник
*

Группа: Участник
Сообщений: 55
Регистрация: 13-09-12
Пользователь №: 73 530



Цитата
По вашему примеру кода я сразу понял, что случай клинический, поэтому не стал на ваш пост реагировать всерьёз. Вы уж извините.

Спасибо, доктор! Как же я раньше такой больной то ходил. Попытки принижения собеседника при отсутствии аргументов - это обязательный элемент твоей вашей стратегии спора? Это - риторический вопрос. Если уж притворяешся притворяетесь умным и вежливым человеком - так притворяйся притворяйтесь до конца.

Сообщение отредактировал menzoda - Aug 14 2014, 07:20
Go to the top of the page
 
+Quote Post

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

 


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


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