|
(Не)доработки языков программирования, которые хотели ли бы вы |
|
|
|
Feb 22 2010, 12:13
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Почему не делают в ЯВУ возврат из функций несколько переменных? Вроде бы несложно было бы объявить функцию типо так: (int,int,char) funcname(char); а потом аналогично использовать при вызове: (a,b,c) = funcname('A'); причём даже в некоторых местах так: (,,e) = funcname('A'); таким образом не используя часть переменных/регистров То есть по сути ситуация аналогичная передаче параметров через регистры, когда (ну например в АРМ) первые 3 параметра передаются в регистрах. И возврат результата по логике строго аналогичен процессу передачи параметров, только не "в", а "из". Обычно возврат нескольких параметров делают через передачу ссылок, что в некоторой степени универсальнее, т.к. можно часть ссылок не использовать в зависимости от "нити" алгоритма. Однако, такой способ требует выделение места в стеке или в другой раме под ссылочные переменные. Что на современном уровне компиляторостроения не есть гуд. Хранение и передача (возврат) переменных в регистрах - предпочтительнее.
Сообщение отредактировал Omen_13 - Feb 22 2010, 14:14
Причина редактирования: Тема переименованна по просьбе автора
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
 |
Ответов
|
May 22 2018, 03:16
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
1. Было-бы лучше, если бы в си, при объявлении инициализированного массива с явно указанной размерностью int m[N] = {1, 2, 3}; компилятор выдавал бы ошибку компиляции если количество инициализаторов не равно N. Это очень полезно для создания связанных списков: define_значение/значение_константы. 2. Было бы очень полезно, если бы в константных выражениях можно было смешивать строки и значения: enum {z1 = 5}; char const t[] = "string" z1 " - " (z1+2)*9; 3. Было бы классно если бы строковые константы можно было задавать не только в форме ASCIIZ (завершающийся нулём набор символов), но и в виде: длина_строки "строка" (без 0 в конце). Хотя это решается автоматически при выполнении пункта 2. 4. Полезно было бы в stdlib в обязательном порядке внести прототип функции _Printf(void *(*)(void *), void *, char *, ...) - т.е. функцию из семейства printf...() передающую поток выводимых символов не на stdout (printf()) или в память (sprintf()), а в callback-функцию (первый аргумент _Printf()). 5. Было бы очень полезно наличие в языке возможностей задания списков define-ов (или enum) с уникальными значениями. Т.е. чтобы на: enum {V_1 = 11, V_2 = 12, V_3 = 13, V_4 = 11, ...}; вылетало на ошибке компиляции типа: "V_4 - duplicate value". Часто приходится задавать или списки define ног контроллера или каналов DMA, портов и пр. ресурсов, в которых каждый элемент списка должен иметь уникальное значение, не совпадающее с другими. При каждом редактировании очень неудобно каждый раз перепроверять весь список на наличие конфликтов, особенно если значения справа от "=" - это не литеральные константы, а выражения. Приходится выкручиваться через проверяющие макросы.
|
|
|
|
|
May 22 2018, 06:57
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(jcxz @ May 22 2018, 06:16)  1. Было-бы лучше, если бы в си, при объявлении инициализированного массива с явно указанной размерностью int m[N] = {1, 2, 3};компилятор выдавал бы ошибку компиляции если количество инициализаторов не равно N. Дык, он и так ругается, но лишь в одном случае - число инициализаторов больше размерности массива. Увы, не ругается, если меньше. Просто "забивает" недостающие нулями. Это действительно неудобно. Цитата 2. Было бы очень полезно, если бы в константных выражениях можно было смешивать строки и значения: В голом виде (без STL и типа того), подобная затея - это рассадник опасных и довольно коварных ошибок на абсолютно ровном месте: как минимум нужно контролировать размерности типов данных на разных платформах, в т. ч. "банальный" char.Вангую головную боль, в принципе, на ровном месте. К тому же такое "оружие" опасно отдавать в руки новичками. Цитата 3. Было бы классно если бы строковые константы можно было задавать не только в форме ASCIIZ (завершающийся нулём набор символов), но и в виде: длина_строки "строка" (без 0 в конце). Код const char t1[] = "012"; const char t2[3] = { '0', '1', '2' }; t1 будет иметь длину 4 байта, а t2 - 3 байта. Определить длину t1 можно лишь найдя ноль в конце, у t2 размер указан явно. Все логично. Но, если убрать ноль у t1, сделав его длину 3 байта, то как в коде понять, что он имеет размер в 3 байта? Как отличить его с "классической" строкой в 4 байта? Путаница на абсолютно ровном месте. Имхо, опасная блажь! Цитата 4. Полезно было бы в stdlib в обязательном порядке внести прототип функции _Printf(void *(*)(void *), void *, char *, ...) - т.е. функцию из семейства printf...() передающую поток выводимых символов не на stdout (printf()) или в память (sprintf()), а в callback-функцию (первый аргумент _Printf()). Это легко делается и сейчас: достаточно лишь "перегрузить" встроенную функцию "putc" своей собственной реализацией, игнорируя второй параметр FILE *. Вот ее прототип: int putc(int ch, FILE *stream);В этом случае при сборке проекта линкер "возьмет" реализацию putc из вашего кода, а не штатную из библиотеки stdio. Цитата 5. Было бы очень полезно наличие в языке возможностей задания списков define-ов (или enum) с уникальными значениями. Т.е. чтобы на: enum {V_1 = 11, V_2 = 12, V_3 = 13, V_4 = 11, ...}; вылетало на ошибке компиляции типа: "V_4 - duplicate value". Очень спорная потребность: могут начаться проблемы как минимум со сторонним кодом, где дублированные значения могут быть созданы намеренно.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 22 2018, 08:15
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Forger @ May 22 2018, 09:57)  Дык, он и так ругается, но лишь в одном случае - число инициализаторов больше размерности массива. Я писал, что хотелось бы ошибку при не равно, а не только при больше. Что будет при меньше я прекрасно знаю, именно поэтому и написал такой пункт. Цитата(Forger @ May 22 2018, 09:57)  В голом виде (без STL и типа того), подобная затея - это рассадник опасных и довольно коварных ошибок на абсолютно ровном месте: В чём именно опасность? Не понял. Да, программировать нужно уметь и язык знать - это вроде не должно вызывать сомнений. И в ассемблерах такая возможность часто имеется. Цитата(Forger @ May 22 2018, 09:57)  Но, если убрать ноль у t1, сделав его длину 3 байта, то как в коде понять, что он имеет размер в 3 байта? Как отличить его с "классической" строкой в 4 байта? Прочитайте моё сообщение внимательнее прежде чем критиковать. Я пишу, что хотелось бы не только "классические" строки (это называется обычно ASCIIZ), а и строки в формате длина,символы_без_0_в_конце. Цитата(Forger @ May 22 2018, 09:57)  Путаница на абсолютно ровном месте. Имхо, опасная блажь! Теперь расскажите это создателям Паскаля и тем десяткам тысяч программистов кто его использует. Если Вы не в состоянии понять для чего это нужно, это ещё не повод говорить "блажь". Например: программа получает текстовый поток данных, который разбивает на лексемы (слова) заменяя строковые значения лексем их номерами из некоего словаря. Значит - в программе есть некий массив лексем, константный и возможно довольно большой. Теперь объясните, пожалуйста, как эффективно (т.е. - быстро) организовать поиск лексем в таком массиве, если принять, что лексемы имеют сильно разные размеры и что для удобства читаемости (и редактирования) исходника лексемы очень желательно иметь в виде строк (а не в виде {'a','b',...}) и лексемы нельзя расположить в некоем удобном для поиска порядке, а порядок их расположения одна относительно другой определяется другими критериями (разбивка на логические группы, связь со значениями define-ов и т.п.) ??? Так вот: с байтом длины поиск в таком списке лексем будет идти гораздо быстрее чем со списком ASCIIZ-строк. Цитата(Forger @ May 22 2018, 09:57)  Это легко делается и сейчас: достаточно лишь "перегрузить" встроенную функцию "putc" своей собственной реализацией, игнорируя второй параметр FILE *. Данный пункт скорее касается компиляторов для PC, потому что в тех компиляторах для МК, с коими я работал (IAR и в CCS) такая функция и так имеется (_Printf()). А в компиляторах на PC часто нежелательно перегружать putc(), потому что она может быть нужна. Цитата(Forger @ May 22 2018, 09:57)  Очень спорная потребность: могут начаться проблемы как минимум со сторонним кодом, где дублированные значения могут быть созданы намеренно. Внимание: я не пишу что нужно изменить работу enum, я пишу что хотелось бы такой механизм. А назваться он естественно должен не enum. Enum там приведён для примера списка, который хотелось бы переделать по другому. Цитата(ViKo @ May 22 2018, 10:42)  Не согласен. Личный пример, как описываю альтернативные функции для портов STM32: И что? Как это поможет от дубликатов? Вот у Вас AF_TIM1 и AF_TIM2 имеют одинаковые значения и при этом это нормально скомпилится. А не должно компилиться.
|
|
|
|
|
May 22 2018, 08:49
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(jcxz @ May 22 2018, 11:15)  Теперь расскажите это создателям Паскаля и тем десяткам тысяч программистов кто его использует.  Тогда тоже пишите в паскале. В чем проблема? К слову, в C# со строками все это сделано гораздо удобнее, чем в голом C/C++, но опять-таки в основном за счет очень толстых библиотек. А речь как я понял про С/C++. Коли так, то почти все ваши пожелания - пока что фантастика. Посмотрите историю эволюции C++ (03 - 11 - 14 - 17) - там появляются новые фишки, но совсем другого рода. К вашим паскале-подобным "удобствам" отношения не имеют. И наверняка на то есть причины - новые стандарты появляются в голове не одного человека, в этом участвует сообщество серьезных мега-программеров. Поэтому я согласен лишь с одним пунктом (1): за более жесткий контроль числа инициализаторов массива. Имхо, весьма полезная "фишка". Пусть и не ошибка "вылетает", но хотя бы варнинг. Цитата(jcxz @ May 22 2018, 11:45)  А добавить новый механизм, в котором одинаковые значения запрещены. Это легко реализовать в run-time, всего один раз запускать проверку на дубликаты значений. Я бы сделал так: const struct, или лучше: constexpr struct, дав значения каждом полю прямо при объявлении (С++11). Кстати, мне еще никогда не приходилось сталкиваться с таким - механизм, в котором одинаковые значения запрещены, и в чужом коде тоже. По мне - экзотика  .
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 22 2018, 14:20
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Forger @ May 22 2018, 11:49)  Это легко реализовать в run-time, всего один раз запускать проверку на дубликаты значений. Всё что может делаться в build-time там и должно делаться. Хотя бы потому что эти данные являются аргументами для других вычислений выполняемых также в build-time. Тогда и все их придётся тоже в runtime переносить добавляя кучу лишнего кода, снижая эффективность. Цитата(Forger @ May 22 2018, 11:49)  Кстати, мне еще никогда не приходилось сталкиваться с таким - механизм, в котором одинаковые значения запрещены, и в чужом коде тоже. По мне - экзотика  . Я выше писал области применения этого. Я не знаю как Вы свои исходники пишете, но у меня есть общий файл описания ресурсов периферии для проекта, где описываются используемые ноги, каналы DMA, вектора прерывания, номера UART-ов, таймеров и пр. Между ними есть зависимости. И если я меняю скажем UART0 на UART1, то потом нужно вспоминать какие с ним связаны UART-ы или DMA-каналы или вектора прерываний. И кроме того - проверять ещё все остальные на возможные конфликты с ними. Это куча ненужной работы. Которую лучше поручить компилятору. Это одна из очевидных областей применения. Очень важная. Или Вы всё пересчитываете вручную и используемые ресурсы записываете числами в исходник? Тогда сочувствую тем, кто будет это сопровождать/модифицировать  Цитата(ViKo @ May 22 2018, 12:03)  Что-то типа unique_case в SV? Атрибут такой ввести? Ну, пусть.  Типа того. Или просто отдельное зарезервированное слово. Цитата(Forger @ May 22 2018, 16:47)  Наверно, проще будет вообще отказаться от таких "странных" инициализируемых не нулем массивов и переделать их под constexpr структуры с явной инициализацией полей. Отказаться от константных массивов???  А как жить? И что странного в массивах констант и зачем их инициализировать нулями???
|
|
|
|
|
May 22 2018, 14:41
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(jcxz @ May 22 2018, 17:20)  Всё что может делаться в build-time там и должно делаться. Хотя бы потому что эти данные являются аргументами для других вычислений выполняемых также в build-time. Тогда и все их придётся тоже в runtime переносить добавляя кучу лишнего кода, снижая эффективность. Элементы массива будут использоваться в build-time только если массив идет как constexpr. В противном случае от run-time никуда не деться. С другой стороны проверку числа инициализаторов можно делать в run-time через обычный assert. В Release сборку такие проверки разумеется никогда не должны попадать. Полагаю, что это подразумевается само собой. Цитата Но у меня есть общий файл описания ресурсов периферии для проекта, где описываются используемые ноги, каналы DMA, вектора прерывания, номера UART-ов, таймеров и пр. Между ними есть зависимости. И если я меняю скажем UART0 на UART1, то потом нужно вспоминать какие с ним связаны UART-ы или DMA-каналы или вектора прерываний. И кроме того - проверять ещё все остальные на возможные конфликты с ними. Это куча ненужной работы. Которую лучше поручить компилятору. У меня почти все эти зависимости заложены внутри соотв. библиотеки, однажды отлажены и подключаются к проектам в виде библиотеки. Построение проекта иное - все сложено не в один файл, а разложены по соотв. модулям с целью минимизации связей модулей друг с другом. Так проще переносить модули из одного проекта в другой. Камень (ядро) значения не имеет. Изменения в коде весьма минимальные и касаются лишь соотв hpp-файла модуля. Цитата Отказаться от константных массивов???  А как жить? Я к этому не призывал, а предложил заменить такие массивы на другие сущности. Это позволяет вообще отказаться от проверки числа инициализаторов. "Проблема" отпадает сама собой, да и код читается проще. Кстати, приведите какой-нить конкретный пример. Попробуем сообща разобраться, как это лучше "обойти"  А то мне на ум, увы, ничего не приходит (( Цитата и зачем их инициализировать нулями??? В этом случае я имел ввиду обычные массивы в ОЗУ.
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
|
May 22 2018, 15:11
|
Гуру
     
Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713

|
Цитата(Forger @ May 22 2018, 17:41)  Элементы массива будут использоваться в build-time только если массив идет как constexpr. В противном случае от run-time никуда не деться. Какого массива? Вы вообще о чём??? Хотя-бы смотрите на что отвечаете. Отвечаете на вот это сообщение: https://electronix.ru/forum/index.php?showt...t&p=1562937причём тут какие-то массивы? Цитата(Forger @ May 22 2018, 17:41)  У меня почти все эти зависимости заложены внутри соотв. библиотеки, однажды отлажены и подключаются к проектам в виде библиотеки. Построение проекта иное - все сложено не в один файл, а разложены по соотв. модулям с целью минимизации связей модулей друг с другом. Так проще переносить модули из одного проекта в другой. Камень (ядро) значения не имеет. Вы кому эти сказки рассказываете? Здесь форум не домохозяек вроде как. Как Вы умудрились создать такую универсальную библиотеку, которая и на STM32 знает какие каналы DMA к какой периферии подключены и какие вектора прерываний и на какие ноги какая периферия выходит. И эта же либа и на LPC и на Tiva и на Infenion и на куче других МК? И всё она одна сама всё определяет? Она видимо и про новые ещё только выходящие МК уже всё знает что и с чем связано и "давно отлажена"... Видимо она сразу даташиты сама читает и куда что надо туда и подключает. Супер-мега либа! Цитата(Forger @ May 22 2018, 17:41)  Кстати, приведите какой-нить конкретный пример. Попробуем сообща разобраться, как это лучше "обойти"  А то мне на ум, увы, ничего не приходит (( например имеем некий список: enum { OSCSRC_ADC_IU, OSCSRC_ADC_IV, OSCSRC_ADC_IW, OSCSRC_ADC_POWER, OSCSRC_RATE, OSCSRC_n}; последнее значение - кол-во элементов списка значений OSCSRC_... Для каждого из элемента есть свойство 1: static u8 const oscsrcSize[OSCSRC_n] = {2, 2, 2, 2, 10}; А также есть свойство 2: static char const oscsrcName[OSCSRC_n * 5 + 1] = "Iu\0\0\0" "Iv\0\0\0" "Iw\0\0\0" "Uz\0\0\0" "Rate\0"; А также есть свойство 3: struct { u8 typ; u8 index; } static u32 const oscsrcFormat[OSCSRC_n] = {{1, 0}, {1, 0}, {1, 0}, {2, 0}, {3, 2}}; Эти свойства раскиданы по разным файлам, а enum - в хидере. И очень хочется, чтобы при добавлении элемента в enum и забывании внесения изменения в один из массивов свойств, он бы не скомпилился, а вылетел по ошибке при компиляции.
|
|
|
|
|
May 22 2018, 16:00
|

Профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831

|
Цитата(jcxz @ May 22 2018, 18:11)  Как Вы умудрились создать такую универсальную библиотеку, Не библиотеку, а библиотекИ. Под каждое семейство своя библиотека (lib-файл), но интерфейс практически одинаковый - базовый класс, шаблоны-наследники и т. п. Поэтому легко переносится платфморозависимый код от проекта к проекту. Учесть все вариации невозможно, поэтому контроль за правильностью подключения тех же каналов DMA возлагается на программера, т.е. на меня. И без даташита, разумеется, никуда. Цитата например имеем некий список:... Эти свойства раскиданы по разным файлам, а enum - в хидере. И очень хочется, чтобы при добавлении элемента в enum и забывании внесения изменения в один из массивов свойств, он бы не скомпилился, а вылетел по ошибке при компиляции. Если эта конструкция может эволюционировать и ее функционал может в будущем сильно измениться, то я бы весь этот толстый функционал сделал бы на плюсах (классы/шаблоны). Более конкретное решение в этом случае сильно зависит от того, как это будет использоваться в коде. Как это у вас все используется и как должно размещаться в С и H файлах?
--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
|
|
|
|
Сообщений в этой теме
GetSmart (Не)доработки языков программирования Feb 22 2010, 12:13 DpInRock Оккам не одобряет. Feb 22 2010, 12:25 Моисей Самуилович Цитата(DpInRock @ Feb 22 2010, 15:25) Окк... May 22 2018, 18:19 Leka Для софт-процессора с 1К "регистров" у м... Feb 22 2010, 12:56 CaPpuCcino ну, всё зависит от того, о каких ЯВУ вы говорите. ... Feb 22 2010, 13:25 GetSmart Да, я говорю о Си к примеру. Паскаль аналогично. Д... Feb 22 2010, 13:46 CaPpuCcino Цитата(GetSmart @ Feb 22 2010, 16:46) Ста... Feb 22 2010, 14:40 Dog Pawlowa Цитата(GetSmart @ Feb 22 2010, 16:13) Поч... Feb 22 2010, 14:45 zltigo Цитата(GetSmart @ Feb 22 2010, 15:13) Одн... Feb 22 2010, 14:45 GetSmart Цитата(zltigo @ Feb 22 2010, 19:45) .. то... Feb 22 2010, 15:02  CaPpuCcino Цитата(GetSmart @ Feb 22 2010, 18:02) Why... Feb 22 2010, 15:28  zltigo Цитата(GetSmart @ Feb 22 2010, 18:02) Это... Feb 22 2010, 16:48   GetSmart Цитата(zltigo @ Feb 22 2010, 21:48) 1. Ес... Feb 22 2010, 17:47    zltigo Цитата(GetSmart @ Feb 22 2010, 20:47) Ещё... Feb 22 2010, 18:46     ReAl Цитата(zltigo @ Feb 22 2010, 20:46) А уро... Feb 22 2010, 22:37 Leka "...доработки языков программирования, которы... Feb 22 2010, 15:37 SasaVitebsk Честно говоря, тоже не понимаю зачем это надо. Как... Feb 22 2010, 20:12 sasamy Цитата(SasaVitebsk @ Feb 23 2010, 00:12) ... Jan 28 2012, 21:27 iiv Цитата(SasaVitebsk @ Feb 23 2010, 01:12) ... Apr 29 2017, 15:19  Эдди Цитата(iiv @ Apr 29 2017, 18:19) в GNU-C ... May 4 2017, 05:20   ar__systems Цитата(Эдди @ May 4 2017, 00:20) В gcc5 э... May 4 2017, 11:40 Xenia Отчего бы не помечтать
Тогда я и свою мечто озвуч... Feb 22 2010, 21:02 vmp Цитата(GetSmart @ Feb 22 2010, 15:13) Поч... Feb 24 2010, 06:38 _Pasha Я бы хотел, чтоб в сях(да и паскале тоже) наконец-... Feb 24 2010, 07:22 sigmaN Сэр, по-моему у вас возникают дурные мысли по прич... Feb 24 2010, 07:32 _Pasha В принципе, было бы на 100% эффективным введение с... Feb 24 2010, 07:35 AlexandrY LUA может возвращать переменные пачками.
http://ww... Feb 24 2010, 08:25 GetSmart vmp, это то же самое как и передавать указатель на... Feb 24 2010, 09:20 dxp Цитата(GetSmart @ Feb 24 2010, 15:20) vmp... Feb 24 2010, 10:04 _Pasha Цитата(GetSmart @ Feb 24 2010, 12:20) Пер... Feb 24 2010, 13:06 GetSmart Структура - структурой. А я предлагаю "симмет... Feb 24 2010, 15:04 GetSmart Ещё недоработку обнаружил. Volatile.
Этот квалифи... Jan 28 2012, 05:29 _Pasha Цитата(GetSmart @ Jan 28 2012, 08:29) Но ... Jan 28 2012, 09:00  GetSmart Цитата(_Pasha @ Jan 28 2012, 14:00) Кодvo... Mar 6 2012, 05:49 toweroff Цитата(GetSmart @ Jan 28 2012, 09:29) Ещё... Jan 28 2012, 13:36 sonycman Цитата(GetSmart @ Jan 28 2012, 09:29) Ещё... Jan 28 2012, 13:44  Сергей Борщ QUOTE (sonycman @ Jan 28 2012, 15:44) А е... Jan 28 2012, 14:37   GetSmart Цитата(Сергей Борщ @ Jan 28 2012, 19:37) ... Jan 29 2012, 02:42   ReAl Цитата(Сергей Борщ @ Jan 28 2012, 16:37) ... Mar 7 2012, 06:58    GetSmart Цитата(ReAl @ Mar 7 2012, 11:58) А вообще... Mar 7 2012, 07:17 vitan Цитата(GetSmart @ Feb 22 2010, 16:13) Поч... Jan 28 2012, 07:49 _Ivana А мне бы хотелось вот какую доработку - чтобы напи... Jan 29 2012, 10:03 _Pasha Цитата(GetSmart @ Jan 29 2012, 05:42) Чем... Jan 29 2012, 11:42 GetSmart Цитата(_Pasha @ Jan 29 2012, 16:42) Дык, ... Jan 29 2012, 12:10 sigmaN Я тут про прерывания подумал...
В стандарте языка ... Jan 30 2012, 01:34 Alex-sh Добрый вечер. Я знаю что мой вопрос несколько не в... Mar 6 2012, 19:16 ReAl Не понял вопрос.
Какая запись и где должна быть ну... Mar 7 2012, 17:22 _Pasha До кучи Mar 9 2012, 07:46 GetSmart Цитата(_Pasha @ Mar 9 2012, 12:46) До куч... Mar 9 2012, 11:23 GetSmart Хотел красиво оптимизировать Си-код, выполняющий о... Apr 13 2017, 16:08 ar__systems Цитата(GetSmart @ Apr 13 2017, 11:08) Хот... May 4 2017, 03:27 sigmaN Цитатачто де пиши на С++, но там аналогичный код с... Apr 30 2017, 08:29 Эдди Вообще-то, сокеты входят в stdlib — для работы с ... May 4 2017, 15:22 Grizzzly Цитата(Эдди @ May 4 2017, 18:22) Вообще-т... May 4 2017, 17:55 RabidRabbit Цитата(Эдди @ May 4 2017, 18:22) Скажем, ... May 7 2017, 11:00 Эдди Предлагаю не рассматривать всякие альтернативы. Об... May 4 2017, 18:01 Kane Цитата(Эдди @ May 4 2017, 21:01) Предлага... May 5 2017, 14:32  TSlicer Цитата(Kane @ May 5 2017, 15:32) Вы бы с ... May 5 2017, 17:17  haker_fox QUOTE (jcxz @ May 22 2018, 11:16) 1. Было... May 22 2018, 05:31    ViKo Цитата(jcxz @ May 22 2018, 11:15) И что? ... May 22 2018, 08:25     jcxz Цитата(ViKo @ May 22 2018, 11:25) Не согл... May 22 2018, 08:45      ViKo Цитата(jcxz @ May 22 2018, 11:45) Блин... May 22 2018, 09:03     Nixon Цитата(Forger @ May 22 2018, 11:49) Поэто... May 22 2018, 09:13      Forger Цитата(Nixon @ May 22 2018, 12:13) Кодcon... May 22 2018, 09:25         jcxz Цитата(Forger @ May 22 2018, 19:00) Учест... May 22 2018, 16:35          Forger Цитата(jcxz @ May 22 2018, 19:35) А прогр... May 22 2018, 16:57          _pv Цитата(jcxz @ May 22 2018, 22:35) Но лучш... May 23 2018, 08:18        _pv Цитата(jcxz @ May 22 2018, 21:11) Эти сво... May 22 2018, 16:08        XVR Цитата(jcxz @ May 22 2018, 18:11) наприме... May 23 2018, 12:04         jcxz Цитата(XVR @ May 23 2018, 15:04) Это как ... May 23 2018, 18:49  ViKo Цитата(jcxz @ May 22 2018, 06:16) 5. Было... May 22 2018, 07:42  k155la3 Цитата(jcxz @ May 22 2018, 06:16) 1. Было... May 22 2018, 09:18 Nixon Кодtemplate < int...Params > struct AAA {
... May 22 2018, 10:07 Forger Цитата(Nixon @ May 22 2018, 13:07) добро ... May 22 2018, 10:33  haker_fox QUOTE (Forger @ May 22 2018, 18:33) В дан... May 22 2018, 13:00   Forger Цитата(haker_fox @ May 22 2018, 16:00) Мы... May 22 2018, 13:47    Nixon Цитата(Forger @ May 22 2018, 16:47) Имхо,... May 22 2018, 13:54     Forger Цитата(Nixon @ May 22 2018, 16:54) IAR AR... May 22 2018, 14:05 haker_fox QUOTE (Forger @ May 22 2018, 21:47) Анало... May 23 2018, 00:33 Forger Цитата(haker_fox @ May 23 2018, 03:33) Ед... May 23 2018, 06:36  haker_fox QUOTE (Forger @ May 23 2018, 14:36) Подав... May 23 2018, 07:00   Forger Цитата(haker_fox @ May 23 2018, 10:00) Я ... May 23 2018, 07:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|