Главная Юзердоски Каталог Трекер NSFW Настройки

Программирование

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 113 6 73
Единственный тред по СИ clang /clang/ Аноним 08/01/26 Чтв 03:00:43 3619616 1
channels4profile.jpg 39Кб, 900x900
900x900
photo2026-01-08[...].jpg 26Кб, 650x612
650x612
photo2026-01-08[...].jpg 51Кб, 640x780
640x780
Тред для всех кто хочет погрузиться в низкоуровневое и системное программирование дедушки си

Обсуждаем чужие гитхабы, коды, программирование микроконтроллеров.

сам учился на степике, всем советую прочитать книгу Брайана Кернигана и Денниса Ритчи «Язык программирования Си»

ЗАДАВАЙТЕ ВОПРОСЫ И ПОЛУЧАЙТЕ ОТВЕТЫ!
Аноним 08/01/26 Чтв 03:03:06 3619617 2
Аноним 08/01/26 Чтв 03:06:16 3619620 3
неплохие примеры кодов в репозитории))
Аноним 08/01/26 Чтв 09:04:08 3619664 4
>>3619620
ахахах да прикольно , ржу нимагу)))) давайте,встречу айтишников сделаем ,пивка по пьем ёпт)))))
Аноним 08/01/26 Чтв 18:34:06 3619995 5
Стоит ли читать Столярова 2 том?
Аноним 08/01/26 Чтв 19:34:41 3620026 6
>>3619995
ну если нужно что-то более менее простенькое прочитать, то норм
вавилен 09/01/26 Птн 01:22:26 3620188 7
дано: плата с микроконтроллером esp32 и допплеровский датчик движения rcwl-0516. щас расскажу что с этим делать)

для начала схема подключения:

gnd (rcwl-0510) - gnd (esp32)
vin - 5v
out - любой свободный gpio

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

вот так максимально просто это реализовано на си:

```
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_log.h"
#include "driver/gpio.h"

#include "log.h"

#define MOTION_SENSOR_GPIO 22

static const char TAG = "GOVN0_SL0NA_main";
void app_main(void)
{
gpio_config_t io_conf = {
.intr_type = GPIO_INTR_DISABLE,
.mode = GPIO_MODE_INPUT,
.pin_bit_mask = (1ULL << MOTION_SENSOR_GPIO),
.pull_down_en = GPIO_PULLDOWN_ENABLE,
.pull_up_en = GPIO_PULLUP_DISABLE,
};
gpio_config(&io_conf);

int motion_sensor_state = 0;
int previous_state = 0;

while (1) {
motion_sensor_state = gpio_get_level(MOTION_SENSOR_GPIO);

/
регистрируем движение только при переходе с 0 на 1 /
if (motion_sensor_state == 1)
{
TickType_t current_time = xTaskGetTickCount();
uint32_t time_ms = current_time
portTICK_PERIOD_MS;
ESP_LOGI(" -- ", "Motion sensor detected motion! Time: %lu ms (%.2f seconds)\n",
(unsigned long)time_ms, time_ms / 1000.0f);
}

ESP_LOGI(" -- ", "Motion sensor state: %d\n", motion_sensor_state);

vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}
```

из логов видно, что все работает:

```
I (283) main_task: Calling app_main()
I (283) -- : Motion sensor state: 0

I (4283) -- : Motion sensor state: 0

I (5283) -- : Motion sensor state: 0

I (6283) -- : Motion sensor state: 0

I (11283) -- : Motion sensor detected motion! Time: 11010 ms (11.01 seconds)

I (11283) -- : Motion sensor state: 1

I (12283) -- : Motion sensor detected motion! Time: 12010 ms (12.01 seconds)
```


всё лучшее - на СИ!
Аноним 09/01/26 Птн 07:59:14 3620215 8
>>3620188
>vTaskDelay(1000 / portTICK_PERIOD_MS);
>while (1)
В гпио же ивенты были?
Аноним 09/01/26 Птн 08:31:09 3620219 9
вавилен 09/01/26 Птн 12:04:06 3620287 10
>>3620215

это так, простенький пример, лучше конечно создавать отдельную задачу для опрашивания gpio и очередь для передачи событий из прерывания в задачу
Аноним 09/01/26 Птн 13:49:28 3620337 11
интересный пост на хабре про умный дом с есп32 вавилен 09/01/26 Птн 23:40:52 3620683 12
Аноним 12/01/26 Пнд 09:47:08 3621833 13
Почему в си используются только строки ASCIIZ? Что если я хочу строки в стиле паскаля: размер строки и массив символов? Допустим даже напишу свои функции для работы с такими строками, но строковые константы (которые в двойных кавычках, типа "привет, мир!") всё равно останутся с '\0' в конце. Как поменять формат строковых констант на свой?
Аноним 12/01/26 Пнд 18:37:05 3622290 14
>>3621833
У строк в Паскале есть один минус. Они ограниченны, не больше 255 символов. В С строки в этом смысле лучше, ты войну и мир вместить в одну строку можешь. В Паскале придется мастерить что-то динамическое, типа связного списка.
>но строковые константы
Писать наверное какой-нибудь конвертор для них, хз.
>Как поменять формат строковых констант на свой?
Скорее всего никак. Только компилятор переписывать.
Аноним 12/01/26 Пнд 19:36:56 3622333 15
>>3622290
Хотя в С тоже придется динамический массив делать для войны и мира. Но ты понял, это просто массив, а не какая-то нетривиальная структура.
Но в новом паскале наверное это как-то решили. Последний раз программировал ещё на турбо.
Аноним 13/01/26 Втр 08:46:17 3622522 16
>>3622290
Наверно только генерировать массив из отдельных символов, типа
const char str[] = { 'H', 'e', 'l', 'l', 'o' };
noSANITIZER вавилен 13/01/26 Втр 17:44:54 3622887 17
изображение.png 86Кб, 881x572
881x572
Сегодня выяснилось что в нашем mips-тулчейне отсутствуют библиотеки санитайзеров (libasan.so,..).

для примера возьмём такую программку с явной проблемой:

int main(void)
{
int arr[5];
for (int i = 0; i <= 5; i++) {
arr = i;
}
return 0;
}


имеется выход за пределы массива

компилируем с необходимыми флагами:
gcc test_file.c -fsanitize=address -g -O0 -o test_file

запускаем и видим ошибку времени исполнения:

==352074==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7f2e77c00034 at pc 0x5563dcbb222e bp 0x7ffc0c6fa970 sp 0x7ffc0c6fa968
...
...


именно так это и должно работать, но при попытке собрать эту программу нашим компилятором:

/opt/mipsel-unknown-linux-gnu/bin/mipsel-unknown-linux-gnu-gcc nsm/test_file.c -fsanitize=address -g -O0 -o test_file
/opt/mipsel-unknown-linux-gnu/bin/../lib/gcc/mipsel-unknown-linux-gnu/12.2.0/../../../../mipsel-unknown-linux-gnu/bin/ld: cannot find libasan_preinit.o: Нет такого файла или каталога
/opt/mipsel-unknown-linux-gnu/bin/../lib/gcc/mipsel-unknown-linux-gnu/12.2.0/../../../../mipsel-unknown-linux-gnu/bin/ld: cannot find -lasan: Нет такого файла или каталога
collect2: error: ld returned 1 exit status

на фотке переписка с тимлидом. че делать
Аноним 13/01/26 Втр 18:32:58 3622932 18
>>3622887
>Белые люди изобрели божественный абсолютно безопасный Раст
>Продолжать пользоваться дырявыми С/С++
Вы заслуживаете все ваши беды.
Аноним 13/01/26 Втр 20:29:02 3622975 19
>>3622932
Раст успел уже обосраться и в ядре линупса и в сетевой инфраструктуре амазона. Ни какой безопасностью там и не пахнет, если программист накосячил, то раст не спасает. А вот мозги, при написании программ, выносит изрядно.
Аноним 13/01/26 Втр 20:48:49 3622989 20
>>3622932
>Белые люди
Ты не охуел там? Тебя пидорасты за такой хейтспич закэнселят, рэйсист неинклюзивный.
Аноним 14/01/26 Срд 05:22:51 3623347 21
>>3622932
Ты просто бык. Быку кнут. А плюсы для тех кто по натуре своей свободу любит.
Аноним 15/01/26 Чтв 12:34:01 3624457 22
>>3620026
А есть что-то более сложное? Там вроде довольно много инфы написано. Пожалуй, даже больше, чем в типовых книгах по си.
Аноним 15/01/26 Чтв 14:17:26 3624563 23
484-0[1] 14Кб, 484x668
484x668
Аноним 15/01/26 Чтв 22:27:25 3624985 24
>>3619616 (OP)
Существует ли книга, после прочтения обложки которой вы не сказали "нуу и хуйня ебаная"?
Аноним 16/01/26 Птн 01:28:15 3625080 25
Аноним 17/01/26 Суб 21:42:46 3626325 26
>>3621833
Странно. Вот тип строки как в паскале, ограничение на длину строки - 4 гига.
struct strptr
{
char *begin;
uint32_t len;
};

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

Да и от сегфолта с переполнением буфера оно помогает
Аноним 18/01/26 Вск 12:29:13 3626595 27
>>3626325
Всё верно, речь больше про строковые константы.
Аноним 18/01/26 Вск 13:41:03 3626652 28
>>3619616 (OP)
@monkey обосри язык программирования СИ
Аноним 18/01/26 Вск 22:25:22 3627129 29
2026 год, в ситреде платиновая дрочка строк.
Убирать 0 из внутреннего буфера = стрелять себе в ногу, если твои строки не собираются жить в песочнице, а логика с оплатой размера строки, но экономии 1 байта...
Аноним 19/01/26 Пнд 12:24:15 3627378 30
>>3627129
Там нет экономии в 1 байт, потому что он используется для хранения размера строки, а на деле 1 байта мало, поэтому используют 2 или 4. Так что напротив расход по памяти выше.
Аноним 24/01/26 Суб 20:06:21 3631694 31
Сконпелируйте энто сначала как есть. Работает как ожидается. Затем у последнего printf уберите \n и сконпелируйте заново.

#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/epoll.h>
#include <linux/input.h>
void main () {
struct input_event kbev;
struct epoll_event epev;
int kbfd = open("/dev/input/event0", O_RDONLY | O_NONBLOCK);
if(kbfd < 0) {
printf("Failed open event0\n");
return;
}
int epfd = epoll_create(1);
if(epfd < 0) {
printf("Failed to create epoll\n");
return;
}
epev.data.fd = kbfd;
epev.events = EPOLLIN;
if(epoll_ctl(epfd, EPOLL_CTL_ADD, kbfd, &epev) != 0) {
printf("Failed to configure epoll\n");
return;
}
int evn;
for(;;) {
evn = epoll_wait(epfd, &epev, 1, 0);
if(evn) {
if(evn == -1) {
printf("epoll_wait error");
return;
} else if(evn > 0) {
read(kbfd, &kbev, sizeof(struct input_event));
printf("%d\n", kbev.time.tv_sec);
}
}
}
close(epfd);
}
Аноним 31/01/26 Суб 19:53:02 3634597 32
плохой язык. в те года можно было сделать лучше, примеры были. лисп пацкаль мл. один только факт, что в недавних сырцах юниха 4 нашли уязвимость говорит о многом о языке. юних кста тоже кал и всё что с ним связано худшее, даже в те времена уже были системы лучше.
Аноним 01/02/26 Вск 11:22:08 3634890 33
>>3634597
Ну и тем не менее он выстрелил так, что большинство базового ПО написано на нем и произошедшем от него С++.
Аноним 01/02/26 Вск 22:15:27 3635469 34
>>3634597
>нашли уязвимость
Т.е. если появляется уязвимость, то это вина языка, на котором написано по?
Аноним 01/02/26 Вск 23:52:42 3635491 35
>>3622932
Напомни, где пидрРаст-тред. Я его найти не могу.
Аноним 02/02/26 Пнд 08:37:32 3635576 36
>>3635469
да. юних же писали сами создатели языка и обосрались. и тогда уже были лиспы, паскаль, форт, фортран, апл, алгол, симула, пролог, смолтолк даже мл хоть и вышли примерно в одно время, они все безопасные и си в 72м это не си в 78м, когда все эти языки уже были, те уже тогда си был отсталым калом.
но си уже так сильно всё засрал, что похуй, это уже не исправить для этого надо убить все сиподобные языки, уничтожить весь софт на них, убить всех программистов, уничтожить всё железо и начать заново. хотя новые сиподобные языки норм типа шарпа
Аноним 02/02/26 Пнд 08:54:02 3635583 37
>>3635576
>типа шарпа
Более каловый язык ещё поискать. Это буквально синтаксическая помойка, куда тащат абсолютно бесполезный сахарок, ломая изначальную задумку.
Аноним 02/02/26 Пнд 09:41:31 3635591 38
>>3622932
>безопасный раст
А что делать с небезопасным растом?
Аноним 02/02/26 Пнд 15:06:00 3635778 39
>>3635576
Давно в тематике такого бреда не видал.
Аноним 02/02/26 Пнд 16:42:51 3635870 40
>>3635576
Какие ОС написаны на этих "безопасных" языках? Си создавался под конкретные нужды - писать ОС на языке высокого уровня, а не на ассемблере. Также удалось добиться определенной степени кроссплатформенности.
Аноним 02/02/26 Пнд 20:04:33 3635978 41
>>3635576
Очень много жира с экрана потекло. Очень много
Аноним 03/02/26 Втр 15:21:45 3636315 42
>>3635870
Под Лисп даже свое железо делали
>>3635491
> где пидрРаст-тред. Я его найти не могу
реально, где? Тоже искал сегодня вопросик задать
Аноним 04/02/26 Срд 15:42:14 3637000 43
>>3635870
на чём угодно можно писать ос. надо портировать виртуальную машину, в си конретной нет, но есть модель пдп11 и надо портировать библиотеки например стандартную библиотеку. как это сделать? на ассемблере в любом случае для любого языка.
Аноним 04/02/26 Срд 16:56:27 3637034 44
>>3637000
>на чём угодно можно писать ос.
>надо портировать виртуальную машину
Мне кажется тебе стоит подтянуть знания в этой области прежде, чем писать подобные утверждения.
Аноним 06/02/26 Птн 21:33:52 3638884 45
>>3637034
шиз как ты портируешь языкнейм на платформунейм? все языки построены по принципу, что они выполняются на абстрактной машине в этом и суть абстратных машин они работают с языком и код пишется для них. на жабе под жвм, на си под пдп-11 это модель во что транслируется похуй. поэтому для порта надо чтобы платформа соотвествовала этой модели.
Аноним 06/02/26 Птн 23:09:23 3638931 46
>>3638884
сделать компилятор/препроцессор/постпроцессор/чтоугодно
Посмотри на котлин, он умеет компилироваться под джвм, джс и ллвм, потому что компилятор имеет разные бэкенды.
мимо
Аноним 07/02/26 Суб 08:35:24 3639093 47
>>3638884
Си транслируется в машинный код конкретной машины. Что gcc, что clang, что msvc. Ни в какую pdp-11 никто ничего не транслируется, если ты не пользуешься древним си, который писали под pdp-11.
Причём под каждую платформу пишут свой компилятор си. Например, под ZX Spectrum тоже есть си, но из-за ограничений машины он там даже стандарт не поддерживает и очень урезанный по возможностям.
А джава с джв - это совсем другой мир. Это языки под виртуальные машины для которых нужна работающая ОС, которая будет выполнять код этой вм. Ни какую ОС ты не напишешь, потому что без ОС твоя жвм даже не запустится. Это сугубо прикладная программа. А си - это системный язык, на котором можно написать практически что угодно.
Аноним 09/02/26 Пнд 16:36:26 3640769 48
Гайс, я собираю shared object (допустим libmylib.so), потом бинарь, к которому линкую библиотеку, находящуюся в той же папке. -L. -lmylib
Линкер отрабатывает, ошибок не выкидывает.

При исполнении бинаря падает ошибка, что библиотека не найдена, хотя она в папке с бинарём лежит.
> error while loading shared libraries: libmylib.so: cannot open shared object file: No such file or directory

Кто объяснит поч так происходит? При исполнении поиск
Аноним 09/02/26 Пнд 18:13:58 3640845 49
>>3640769
Возможно дело в переменных окружения. Попробуй добавить директорию с библиотекой в LD_LIBRARY_PATH
Аноним 10/02/26 Втр 00:09:20 3641076 50
>>3640845
Спс, разобрался, добавил локальную диру через rpath.
Аноним 10/02/26 Втр 19:25:50 3641704 51
>>3639093
>>3638931
о том и речь. трансляция в промежуточный код, который должен отображаться на целевую архитектуру и проблема в точности и качестве такого отображения. и от этого же зависят требования к рантайму. а для ос всё равно придётся писать на языке платформы.
Аноним 25/02/26 Срд 19:22:09 3651724 52
>советую прочитать книгу Брайана Кернигана и Денниса Ритчи «Язык программирования Си»
Мы игнорируем тот факт что ее можно прочитать только если ты уже знаешь Си потому что там задачки +- фулл бесполезные?
Аноним 27/02/26 Птн 20:23:59 3653126 53
>>3635576
Как бы не хотелось согласиться, попробуем восстановить реальную ситуацию, которая имела место в то время.
>лиспы
Тормозной скрипт, для которого только-только научились писать вменяемый GC. Требует передового железа, иначе пригоден лишь как DSL для экспертных систем без строгих требований к производительности.
>паскаль
Учебный язык. За пределами учебных задач такая же байтопараша, как си.
>форт
DSL для написания встраиваемых систем. В некоторых задачах тормозит, сцука.
>фортран
Хорош только библиотеками. В остальном кривая параша, которая с самого начала разрабатывалась бессистемно. В нём даже рекурсии не было, блеать.
>апл
DSL для математических расчётов. Да ещё с GOTO.
>алгол
Алгол 60 - неюзабелен из-за call by name, который очень тяжело оптимизировать. Алгол 68 - слишком сложный, был потеснён Паскалем.
>Симула
См. Алгол 68.
>пролог
Подмножество Лиспа, расширенное недетерминизмом и тормозной унификацией. Юз кейсы ещё уже, чем у Лиспа.
>смоллтолк
Экзотичен как Симула и тормознут как Лисп.
>мл
DSL для доказательств теорем, о котором за пределами Эдинбурга вообще никто не знает. Если не ошибаюсь, в первых версиях даже мутабельных переменных не было. Тормозит как Лисп (в который, собственно говоря, и транслируется).
Аноним 28/02/26 Суб 11:03:42 3653460 54
>>3651724
Если не стесняться гуглить сложные моменты, то там нет ничего такого чего нельзя было бы освоить с нуля. Ну разве что пара алгоритмов, которые можно либо скипнуть либо тоже погуглить. Задачки можно решать с отладчиком если что-то непонятно. А вообще процентов 70 книги это очень простые упражнения. Самый главный плюс КиР в том что она короткая - 150-200 страниц. Тот же Прата уже в 5 раз длинее на все 1000 страниц.
Аноним 28/02/26 Суб 14:08:09 3653548 55
>>3653126
Как ты удобно всё перечислил, но забыл про Ada который как раз и разрабатывался как безопасный в отличие от паскаля.
Аноним 20/03/26 Птн 11:22:34 3668048 56
Ребята, я уже 3 месяц изучаю Си.

И это бомба. Я забыл про все языки на которых писал до. Зачем, когда можно обращаться указателями на указатели и быть по настоящему счастливым, а не вот это вот все.
20/03/26 Птн 11:36:26 3668063 57
>>3653126
SML был очень годным языком, первый и единственный юзабельный со статической типизацией. У Аппеля он компилировался в машкод для мипса и спарка.
Аноним 21/03/26 Суб 01:50:16 3668721 58
>>3622932
Хуесос малолетний, ты даже в глаза не видел раст.
Аноним 21/03/26 Суб 01:56:22 3668723 59
>>3668048
Попробуй ассемблер на x86
Кончать будешь каждый день.
Аноним 21/03/26 Суб 01:58:45 3668724 60
>>3653126
Чмохенс, ты даже не понимаешь, что там написано. Нейросеть хуева .
Аноним 25/03/26 Срд 10:51:27 3672044 61
>>3651724
Насколько тяжело войти в 2026 в низкоуровневое программирование,есть базовое знание си ,и булевой алгебры и понимание архитектуры фон Неймана но нет коммерческой практики ,и есть ли ейджизм при трудоустройстве?
27 лет
Аноним 25/03/26 Срд 10:53:31 3672045 62
>>3672044
>>3653460
В керигане ничего сложного нет я даже не уверен что его достаточно
Аноним 25/03/26 Срд 11:31:18 3672070 63
>>3672044
>Вкат в низкоуровневое программирование
Достаточно базового знания бурне егейн шелла https://habr.com/ru/articles/1004854/
>>3672045
Си - довольно сложный язык на самом деле.
Аноним 25/03/26 Срд 13:48:30 3672241 64
>>3672044
Ты по масти программист или вкатунец? Вкатунца сходу попалят, а программист на 99-й фене петики покажет с гитхабовскими звездами.
Аноним 25/03/26 Срд 19:18:18 3672531 65
>>3672241
На звёзды в гитхабе никто не смотрит, их можно за копейки купить
Аноним 26/03/26 Чтв 17:48:56 3673229 66
Использую Си, когда нужно переписать или скрыть какую-то логику на Питоне. В повседневных и бизнес задачах сейчас уже в основном бесполезный: телеграм бота, бэкенд вебсайту, десктопное приложение вы на нем писать не будете.
Аноним 26/03/26 Чтв 18:06:37 3673238 67
Где сейчас Си и Си++ можно исполтзовать, если речь не о микроконтроллерах и всякой дедовской хйне:

Модификация кода известных программ, например десктоп клиента Телеграма написан на С++, некоторые создают кастомные клиенты, модифицируя разные моменты в телеграмме: пример Котатограм, некограм и тд.

Или тот же браузер Мозилла, на С++, кто-то модифицирует его код, чтобытна базе его создать свой браузер, например с целью большей приватности, например Tor или Camoufox.

Разработка VPN приложений, всяческие средства обзода блокировкой все пишутся на Си или Си++, там где нужно натнизком уровне изменять настройки сети.

Разработка Игр для Андроид. Сам код игры может быть написан на Си++, собран в бинарный файл типа lib.so, другая часть, сам интерфейс написан на Java, и через бридж JNI вызываются функции уже из бинарного файла.

И в общем и целом где нужна работа с графикой, звуком, сетью, все пишется на Си/Си++.

Примеры: PhotoShop, Gimp, VLC player и тд.

Если прям хочется, то можно создать что-то свое, конкурировать с Фотошопом условным вряд ли сможете, скорее как учебный проект, который может перерасти в хороший Опенсорс.

Черные хакеры используют Си/Си++, чтобы писать вредоносное ПО. Хотя тут имхо, любой язык подойдет, тот же питон или джаваскрипт, на любом можно сделать малварь.

Вот это основные наверное направления, ради в которых можно вписаться в изучение Си/Си++.
Аноним 26/03/26 Чтв 18:11:22 3673245 68
>>3673229
На cython можно, но я не особо его распробовал.
>>3673238
Почему у тебя в одной строчке си и плюсоговно?
Аноним 27/03/26 Птн 16:27:45 3673924 69
>>3673238
>где нужно быстро и грязно, там С
Упростил твой пост
Аноним 27/03/26 Птн 19:44:46 3674047 70
Cython отличная тема. Он транспиллирует код Python в Си, а затем в бинарный файл (.pyd/.so).

Я его использую, когда к примеру мне нужно продать какую-то программу, но при этом сохранить контроль над интеллектуальной собственностью.

Чтобы покупатель не нашел какого-то другого программиста, не модифицировал код, не "дал другу погонять", не перепродал.

Поэтому да отличная тема, всем советую, кто на Python пишет, но тред не про него конечно.

А по Си, ну честно сказать, тяжело на нем писать, даже те, кто на нем много лет пишет, говорят, что иногда лучше сделать на php, python, js, c# если это сайт/бот/десктоп. Но области применения по прежнему есть, выше расписал.
27/03/26 Птн 21:37:06 3674113 71
>>3668063
SML появился только в начале 80х, а современный стандарт вообще только в 90е. До него был только просто ML, на котором ничего, кроме расширений для пруверов, не писали.
>первый и единственный юзабельный со статической типизацией
В некоторых задачах сабтайпинга не хватает, а так согласен.
Аноним 28/03/26 Суб 16:03:24 3674467 72
>>3674047
Ну такая себе шутейка.
Аноним 28/03/26 Суб 16:31:49 3674495 73
>>3674047
Какой в итоге размер твоих файлов получается?
Аноним 29/03/26 Вск 18:27:25 3675134 74
>>3635576
>лиспы
годнота кста
Аноним 31/03/26 Втр 12:38:07 3676262 75
>>3674495
Какая нахуй разница?
Аноним 31/03/26 Втр 13:52:07 3676308 76
>>3673238
>микроконтроллерах и всякой дедовской хйне:
Ну как дедовской, вся индустрия это си и плюсы по-сути: промышленные роботы всякие, тачки, самолёты.
Всё что ты расписал это какая-то хуета для школьников.
Аноним 31/03/26 Втр 14:17:22 3676324 77
>>3676308
У того дебича си и c++ это одно и то же.
Аноним 31/03/26 Втр 18:07:10 3676520 78
>>3676324
в сути своей оно так и есть
Аноним 01/04/26 Срд 15:15:03 3677108 79
>>3676520
Мда мхех, понятно всё.
Аноним 01/04/26 Срд 17:16:31 3677278 80
>>3677108
>плюсовик порвался
Аноним 05/04/26 Вск 18:37:55 3679972 81
>>3622887

Пересобирать gcc или искать готовый бинарник
Аноним 06/04/26 Пнд 04:48:18 3680174 82
>>3622932
С++ датчанин сделал, куда уж белее?
Аноним 06/04/26 Пнд 23:15:36 3680958 83
>>3680956 →
наваливаю базы:
C это ООП язык
Java это истинное развитие C
new в цикле это моветон
Аноним 07/04/26 Втр 20:36:51 3681893 84
Аноним 08/04/26 Срд 09:26:30 3682140 85
А я люблю называть переменные new. И что вы мне сделаете?
Аноним 08/04/26 Срд 17:09:04 3682682 86
Аноним 08/04/26 Срд 18:49:21 3682768 87
>>3673238
>некограм
Это мобильынй клиент на джаве, шизик. Дальше не читал
Аноним 20/04/26 Пнд 22:20:56 3690601 88
>>3619616 (OP)
>сам учился на степике
На каком/-их курсе/-ах?
Аноним 21/04/26 Втр 03:38:51 3690642 89
>>3668048
Си - это чистое сияние разума, очищенное созерцанием истинной пустоты войда от привязанностей к паттернам и типам, от страстей исключений и суеты функциональной ереси. По мере просветления ты ощутишь, как последние оковы стандартной библиотеки спадают с тебя и ты обретаешь истинную бинарность.
Аноним 21/04/26 Втр 19:47:34 3691030 90
Аноним 21/04/26 Втр 21:05:22 3691079 91
>>3691030
посредственный, спок
Аноним 29/04/26 Срд 10:39:09 3696144 92
Абсолютно зеленый долбоеб который вообще нихуя не понимант в программировании. Прям 0

Как язык работает с железом? Может ли он в целом делать это напрямую? Например с сетевой картой
Аноним 29/04/26 Срд 12:11:24 3696218 93
>>3680958
ООП - это когда абсолютно бессмысленная хуйня придуманная только для того чтобы одного недопрограммиста можно было легко заменить на другого.
Вообще орал когда читал СтраусТРАПА и он такой пишет - ну Си короче сложный, я придумал си с классами чтобы проще было нахуй.
Аноним 29/04/26 Срд 12:13:48 3696220 94
>>3696144
>железом
Что такое железо?
>Может ли он в целом делать это напрямую?
В мире погроммистов напрямую - это работа с регистрами устройств, у тебя, допустим, есть устройство с регистрами доступное по такому то адресу, на деле ты будешь долбиться через интерконект (или шину).
>Например с сетевой картой
Да, вот читни исходник для примера https://github.com/torvalds/linux/tree/master/drivers/net/ethernet/intel/e1000
Аноним 29/04/26 Срд 12:14:37 3696221 95
>>3696218
В Си тоже можно vtbl напихать, это будет та же ООП хуйня.
Аноним 29/04/26 Срд 13:02:31 3696257 96
изображение.png 66Кб, 1024x480
1024x480
>>3696218
Предлагаю тебе парсер мат. выражений написать на чистом Си. Особенно AST весело на Си писать. Тебе либо придется делать костыльный аналог полиморфизма, делая свою vtable, либо почувствовать себя магом и кастовать типы, молясь нигде не проебаться.
Аноним 29/04/26 Срд 14:49:42 3696371 97
>>3696257

Тебе скажут что есть дидовые YACCи прочие дидовые BISON и FLEX.
Аноним 29/04/26 Срд 19:53:09 3696632 98
>>3696257
У тебя от джаваскрипта мозг вытек нахуй. Берешь и пишешь свич по int nodeType, у тебя их всего три.
Аноним 29/04/26 Срд 20:35:26 3696678 99
>>3696632
Окей, у тебя есть struct Node { int num, type; Node* lhs, rhs }. Ты оформил 5 кейсов, 4 операции арифметические и взятия числа.
Потом ты подумал. Какой же калькулятор без 1) мат. констант 2) встроенных дефолтных функций вроде корней, синусов и пр.
Как выкручиваться будешь?
Аноним 29/04/26 Срд 20:55:19 3696696 100
>>3696678
У меня будет, скажем, штук 20 свичей по инту вместо полиморфизма. Я добавляю новую операцию, надо поправить все свичи. Без правок программа должна упасть на тестах. Если не падает, пишу тесты, которые уронят. И так пока все не заработает.
Необходимость ООП сильно преувеличена. В процедурном коде у тебя весь алгоритм перед глазами, хоть там и простыня ифов. С ООП логика размазана по сотням визиторов в сотнях файлов, пара строк на каждый, охуеешь собирать этот пазл.
Аноним 29/04/26 Срд 21:04:39 3696698 101
>>3696696
База. Ты настоящий программист. Не то что эти соевые ООП-петушки.
30/04/26 Чтв 09:42:35 3696969 102
>>3696698
Всё правильно. Единственный случай, где нужен динамик диспатч - это если количество кейсов заранее неизвестно и они подгружаются динамически (плагины), так что схожий код в одном месте принципиально не поместить. Иначе просто пиши свитч.
sage Аноним 01/05/26 Птн 15:26:52 3697971 103
если вы искали задачу для пет проекта/вката, то их есть у меня

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

предлагаю вам подумать над проблемой автогромкости (на базе карманного аудиоплеера с гулькиным хуем мощностей)
Аноним 01/05/26 Птн 16:29:04 3698013 104
>>3697971
> музяку
говно для быдла
Аноним 01/05/26 Птн 21:21:10 3698191 105
>>3677278
Так не рвись, говно
Аноним 02/05/26 Суб 11:09:50 3698390 106
>>3696632
В православном ocaml так и пишут парсеры, но там это называется паттерн матчинг на типах.
Аноним 02/05/26 Суб 11:12:49 3698391 107
Аноним 02/05/26 Суб 15:42:15 3698528 108
>>3698391
Это для разговоров по телефону, а не музыки. Музыка по дизайну не одной громкости, выравнивая громкость ты испортишь музыку, всё равно что слушать нейрокал вместо музыки, свинское говноедство.
Аноним 02/05/26 Суб 16:11:09 3698555 109
>>3698528
>выравнивая громкость ты испортишь музыку
вот тут поподробнее пжалста
тоесть выходит по вашим словам, что ежели я к примеру слушаю элджея на волуме 20 и потом играет агата кристи на тех же волумях но тихо, то прибавив волумя я прорываю пространственно временной континуум и получаю нейрокал?

таблетки
Аноним 02/05/26 Суб 16:35:25 3698564 110
>>3698555
Это значит ты не можешь слушать стримы, сначала надо закешировать треки полностью и их проанализировать целиком, и только потом слушать. Так и делают музыкальные плееры, сначала сканируют всю фонотеку, а потом только слушаешь. А в реальном времени регулировать громкость, это для разговоров по телефону, чтобы речь было нормально слышно, а музыку это всирает, тупая свинья.
Аноним 02/05/26 Суб 16:43:11 3698568 111
>>3698564
>Так и делают музыкальные плееры
ни один плеер так не делает, не надо вводить анона в заблуждение
вот играет элджей с айфона по яндекспатпиське и вот агата кристи еле слышно. запускаем тот же самый тест на плеере хуй-сунь-в-чай: результат тот же. и в очередной раз я спрошу, каким образом прибавка волумев на той же тихой агате кристи всирает ее, ответь уж нам, шизло?
Аноним 03/05/26 Вск 01:48:31 3698757 112
>>3698568
Дебил ебучий, replay gain включи.
Аноним 03/05/26 Вск 08:00:18 3698789 113
>>3698757
программирывовай, говно инцельское
Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов