1. Куча / Говнокод #28152

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    Бесконечный оффтоп имени kcalbа #2
    K C A L B K C A L B
    C C               C C
    A   +             A   +
    L     +           L     +
    B       K C A L B K C A L B
    K       C         K       C
    C       A         C       A
    A       L         A       L
    L       B         L       B
    K C A L K K C A L B       K
      C     C           C     C
        +   A             +   A
          + L               + L
            K C A L B K C A L B

    Бесконечный оффтоп имени kcalba #1 https://govnokod.ru/28122 https://govnokod.xyz/_28122/

    Запостил: kcalbCube, 05 Мая 2022

    Комментарии (203) RSS

    • Добрый день.

      Этот оффтоп сгенерирован не автоматически.

      Индекс оффтопов: https://index.gcode.space/.
      Зеркала Говнокода и полезные ресурсы:
      * https://govnokod.xyz/ (альтернативный Говнокод)
      * https://gcode.space/ (read-only зеркало Говнокода)
      * https://t.me/GovnokodBot (Говнокод-бот в «Telegram»)
      * https://t.me/GovnokodChannel (Тематический канал в «Telegram»)
      * https://vorec.space/ (глоссарий Говнокода)
      * https://app.element.io/#/room/#govnokod:matrix.org (резервный чат)
      * https://discord.gg/F7AdMAHAZq (discord чат)

      Примечание: автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx.
      Остерегайтесь подделок. Берегите себя и своих близких.
      Ответить
    • А теперь закати и перекати по форме.
      Ответить
    • Суд Петербурга признал запрещенными к распространению фильмы "Зеленый слоник"
      Ответить
      • Почему? Фильм же филосовский
        Ответить
      • Ну чего вы, злые судьи…
        Ответить
      • Последний гвоздь в крышку гроба русской культуры.
        Ответить
        • Больше никакого сладкого хлеба.
          Ответить
          • Дай-ка угадаю, кто-то украл твой сладкий хлеб?
            Ответить
            • новый ник для стертора-ротоеба: Govnovor
              Ответить
              • While in cell Pahom offers you some sweet bread. Horrified, you yell "Ёб твою мать, блядь!". Pahom demands you eat the sweet bread, or else he and Colonel will beat you.

                Combat: Drop the sweet bread and step on it, then get ready for the fight.
                Magic: Take the sweet bread now without argument, knowing that later this afternoon you and Pahom are about to be executed by the firing squad.
                Stealth: Act like you're going to take the sweet bread, but at the last minute throw it in the air, hoping that he'll pay attention to it long enough for you to get a kick in дыхалка.
                Ответить
            • Суд Петербурга.
              Ответить
              • Суд Петербурга и есть сладкий хлеб.

                Вчера, например, они судили девушку за то, что она сожгла на берегу финского залива гигантскую букву "Z", которую сама же и сделала
                Ответить
                • Потому что это надо было делать на нефтебазе, складе учебников истории или в крайнем случае кинотеатре.
                  Ответить
              • > Суд
                «Суд»
                Подзалупные военные суда нелегитимны и идут на хуй.
                Ответить
      • Это фильм — стихия. Стихии отказали, запретили стихию — запретили небо, запретили траву, запретили сон, запретили просто детей, можно сказать. Этот фильм очень важен для детей, потому что он говорит о том, насколько страшно будущее. Есть просто некая фиксация на общих таких составляющих: такие, как кал, такие, как моча, такие, как боль, такие, как радость. Фильм, конечно, об этом. Это абсолютно детские симптомы
        Ответить
    • Чем Казань лучше Рязани?
      Ответить
      • В Казани делают такие охуенные пирожки мясом наружу. Называется эчпочмак. А в Рязани есть грибы с глазами разве что, их едят -- они глядят, и это не великая заслуга
        Ответить
      • Это одно и тоже.
        Ответить
    • бля
      https://github.com/JetBrains/intellij-community/blob/dc2657e694e4cc3c5f5f126c0606873e82c65712/platform/platform-impl/src/com/intellij/diagnostic/PerformanceWatcherImpl.java#L166
      Ответить
      • https://github.com/JetBrains/intellij-community/blob/dc2657e694e4cc3c5f5f126c0606873e82c65712/platform/platform-impl/src/com/intellij/diagnostic/EventWatcherImpl.java#L46

        private static final Pattern DESCRIPTION_BY_EVENT = Pattern.compile(
          "(([\\p{L}_$][\\p{L}\\p{N}_$]*\\.)*[\\p{L}_$][\\p{L}\\p{N}_$]*)\\[(?<description>\\w+(,runnable=(?<runnable>[^,]+))?[^]]*)].*"
        );

        И что это за херня такая? Это регексп? Что он делает? Комментариев естественно нихуя нет.
        Ответить
        • Не советую открывать файлы с расширением «.java».
          Ответить
          • Будем честны: каждый из нас хоть раз в жизни поглядывал в такой файл, хотя в приличном обществе в таком признаваться и не принято
            Ответить
        • >Это регексп?
          да

          А что делает -- хз, ну видимо выпаршивает какие-то дескрипции и ранаблы из какой-то хуйни
          Ответить
          • Нахуя надо писать такое говно, если оно нихуя не понятно? Почему бы не написать это в виде нормального человекочитаемого кода? Профит в чем?
            Ответить
            • Хотят - пишут регэкспы. Хотят - пишут тонну бесполезного кода, который ничего не делает. Не нужно искать логики в программировании на «Jawa».
              Ответить
            • Я понимаю нахуя писать нечитаемую хуйню, если это какое-то хардкорное битоебство, которое дает выигрыш в перфомансе, или если это какой-то суперсложный алгоритм, который хрен поймешь но это, блядь, регексп
              Ответить
            • Возможно без регекспа этот конченый автомат занимал бы 1005400 строк.
              Ответить
              • Дарю ноу-хау:
                (defvar string-re
                  "\"\\([^\"]*\\)\"")
                
                (defvar file-re
                  (whitespacify-concat "{" "file" "," string-re "}"))
                
                (defvar line-re
                  (whitespacify-concat "{" "line" "," "\\([[:digit:]]+\\)" "}"))
                
                (defvar position-re
                  (whitespacify-concat "\\[" file-re "," line-re "]"))
                
                (defvar stack-frame-old-re
                  (whitespacify-concat position-re "}"))
                (defvar stack-frame-new-re
                  (whitespacify-concat "(\\(.+\\.erl\\)," "line" "\\([[:digit:]]+\\))"))
                (defvar stack-frame-re
                  (concat stack-frame-old-re "\\|" stack-frame-new-re))
                Ответить
                • Рагулярка в итоге получается нажористая, но ме-нять её просто.
                  P.S. Именно поэтому я за ``GNU Emacs''.
                  Ответить
                  • вроде бы в жабке тоже много сделать многострончую рагулярку с комментами

                    в перле точно можно
                    Ответить
                    • Мне сразу этот рагуль вспомнился https://core.trac.wordpress.org/browser/tags/5.9/src/wp-includes/shortcodes.php#L259
                      Ответить
                      • прикольный аски-арт в левой колонке. Это торнадо, смерч, или змейка?
                        Ответить
                        • Я с телефона и не вижу про что ты. Возможно, анскилл-арт?
                          Ответить
                  • получается недоDSL над регуляркой
                    Ответить
            • В отличие от обычного кода, регулярки не надо читать, их надо писать. Если регулярка не работает, сотрите ее и напишите заново. Регулярка сложнее /.*\.[jpg|jpeg]/ не должна быть самодокументирующейся, рядом с ней должен быть комментарий. Если комментария нет, то увольняйтесь и ищите другую работу, вдруг там не будет регулярок.
              Ответить
              • (?:jpg|jpeg)
                Ответить
              • ты написал охуенную регуляркку. Под нее не попадет foo.jpg, зато попадет foo.g, foo.| и даже foo.e
                Ответить
                • Ох да. :facepalm:
                  Ответить
                  • Читал книжку с совами? Читал? Читал книжку? Книжку читал? С совами книжку читал?
                    Ответить
                    • Я ставлю курсор на QRegExp и нажимаю F1
                      (?:(?:читал)(?:книжку)(?:с совами)\b){1,3}
                      Ответить
                      • Я серьезно
                        не читал?
                        Ответить
                        • Я тоже серьезно... Там основы прописаны. Если ничего не помогает, ищу на первой странице гугла ссылку на stackoverflow.
                          Ответить
                          • Очень зря. Если бы ты прочитал книгу, ты бы понял регулярки на гораздо более глубоком уровне, и научился бы по ним в голове строить НКА
                            Ответить
                            • Библиотеку колхоза сейчас разгромили? И почему у перевода сов два разных издательства?

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

                              Лучшая книга о регулярных выражениях.

                              В 3 издание добавлена информация о PHP
                              Ответить
                            • И шо будет когда ты этому научишься? Бабы от зарплаты течь начнут? Или на анонимном ресурсе выебываться будешь?
                              Ответить
                              • Второе, конечно же. Я вообще много чего в жизни изучил, чтобы на говнокоде выебываться.
                                Ответить
        • Я его в regex101 запихнул, почитал расшифровку и всё равно нихуя не понял.
          Ответить
          • Есть софт/сайты, которые подсвечивают синтаксис регекспов?
            Ответить
            • А сам как думаешь?

              Более интересны тулзы для прямого и обратного инжиниринга из/в нормальный UML. Thinking in Perl нахуй не надо.
              Ответить
              • Блядь, если знаешь - скажи.
                Ответить
                • regexbuddy
                  Ответить
                  • Кек

                    Released on 09/26/15 for exclusive usage by
                    members of the release scene. This isnt something
                    to share with your school mates and not for sale.
                    Go and ask mommy to buy this app if you like it!
                    Ответить
    • Решил стать настоящим программистом
      Посоветуйте, что почитать
      Ответить
    • Так ты в итоге тоже бесконечник?
      Ответить
    • А парад на говнокоде сегодня будет?
      Glavpetuh
      Ответить
      • Парад отменён в связи с плохой погодой.
        Ответить
        • на хуй он нужен.
          Ответить
        • Зассал?
          Ответить
          • АТО!

            Пропагандистские СМИ РФ сообщают, что парады авиации в Москве и других городах отменили якобы из-за "плохой погоды".

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

            Парады авиации также отменили в Санкт-Петербурге, Екатеринбурге, Новосибирске, Самаре и Мурманске. Ни в одном из этих городов, судя по сайтам с прогнозами погоды, не было даже дождя.

            На параде в Москве мог появиться самолет "судного дня" - Ил-80, который может перевозить высшее руководство России в случае ядерной войны. СМИ предполагали, что им Путин будет угрожать миру. Однако "судного дня" на параде не было.

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

            "Один из инсайдеров InformNapalm в Москве сообщает, якобы реальной причиной отмены воздушной части парада стала диагностированная неисправность самолёта судного дня", - сообщается в Telegram-канале волонтерского проекта.
            Ответить
    • https://pbs.twimg.com/media/FSMdsTrXwAAuy25?format=png&name=small
      Ответить
    • В ближайшее время россияне будут шокированы от места удара, который нанесут ВСУ.

      Об этом "24 каналу" сказал советник главы МВД Виктор Андрусив.

      ------

      Волнуюсь за Злотохуйск
      Ответить
    • Перепись обосравшихся пидарасов:
      https://nitter.fdn.fr/zvalgasrytuose/status/1520030662757171201#m

      В море говна, среди острова из хуёв, плавает и герой всего айти-левачества товрищ Сноуден
      Ответить
      • https://t.me/zprognozi
        https://t.me/zprognozb
        https://t.me/vatnikiof
        Ответить
        • Я осуществил автоматический перекат
          Ответить
    • А правда, что в плюсах для волатильных объектов свой копиконструткуор?
      Ответить
      • volatile Foo в классический Foo(const Foo& other) не передастся и по умолчанию копирующего конструктора не сгенерируется. Считается, что если тебе нужет volatile объект, то нужно за ним очень внимательно следить и автоматика тут скорее помешает.
        Ответить
        • те конструктор тут и не причем, просто volatile Foo не кастится в const Foo&

          а почему?
          потому, что внутри этой функции компилятор может какие-то оптимизации сделать не зная, что там сверху волатилка была?
          Ответить
          • Да, фактически по той же причине, почему const int не передаётся в int&.

            Ты можешь отдельно сделать Foo(volatile const Foo&) для поддержки копирования волатильных объектов (делать его единственным можно, но не советуется, потому что пессимизация).
            Ответить
            • Спасибо, еще раз понял, что в si++ всё логично, если использовать мозг
              Ответить
              • > в si++ всё логично, если использовать мозг

                АХАХАХАХХХХ...
                Ответить
                • Он про PHP на самом деле
                  Ответить
                • Вот мы седня как раз пиздели за мемори модель крестов
                  А у вас в сишке такая есть? нет? то-то!
                  (впрочем, она есть в pthreads видимо)
                  Ответить
                  • Есть. Её в С11 вместе с атомиками приняли.
                    Такая же как в крестах (стандартизаторы специально приняли совместимые модели)
                    Ответить
      • Может дать этому чуваку инвайт и спросить

        https://habr.com/ru/sandbox/114114/
        Ответить
        • > const MAX_COUNT_PEOPLE = 4;

          Где тип, блядь!
          Ответить
        • > Также чтобы не писать код, так как он очевиден, компилятор заменяет умножение на 2, сложением

          Ээээ, не шифтом влево что ли?
          Ответить
          • ну вот взял и повёлся

            sal     DWORD PTR 4[rsp]


            всё почему? потому что нехуй хабр даже пытаться читать
            Ответить
            • >сал

              это арифметический шифт влево? серьезно? А можно для тупых -- чем он от обычного шифта отличается? Я просто такой инструкции не помню
              Ответить
              • Да, я просто сдампил в интеловском синтаксисе, потому что не привык еще читать и с ним проще. В gdb/at&t был shll
                Ответить
                • так в интеловском синтаксисе и есть SHL (ну был в моем детстве во всяком случае)

                  в at&t лишняя постфикс l (вторая l) це размер опиранда, который у тебя DWORD
                  Ответить
                • так в интеловском синтаксисе и есть SHL (ну был в моем детстве во всяком случае)

                  в at&t лишняя постфикс l (вторая l) це размер опиранда (long поди), который у тебя DWORD
                  Ответить
                  • я подозреваю что это шорткат для shift <address> 1, пушо умножал на двойку, что вроде никоим другим образом не проявлялось
                    Ответить
              • > арифметический шифт влево
                > чем он от обычного шифта отличается?
                > арифметический шифт влево
                Как зовут робина, который Капитану Отчевидность реплики подаёт?
                Ответить
          • Справедливости ради, так действительно бывает: https://gcc.godbolt.org/z/qY7Grq6Wh
            unsigned foo(unsigned a)
            {
                return a * 2u;
            }

            foo(unsigned int):                                # @foo(unsigned int)
                lea     eax, [rdi + rdi]
                ret
            Ответить
            • ну тут lea победил shift видима?
              Ответить
              • Так точно.
                PS, и ещё это потому что unsigned.
                Ответить
                • причем тут unsigned? а, понял

                  #include <stdio.h>
                  int  main() {
                      unsigned long i = 42;
                      i *= 2;
                      printf("%d", i);
                      return 0;
                  }

                  .LC0:
                          .string "%d"
                  main:
                          push    rbp
                          mov     rbp, rsp
                          sub     rsp, 16
                          mov     QWORD PTR [rbp-8], 42
                          sal     QWORD PTR [rbp-8] ' <------ О
                          mov     rax, QWORD PTR [rbp-8]
                          mov     rsi, rax
                          mov     edi, OFFSET FLAT:.LC0
                          mov     eax, 0
                          call    printf
                          mov     eax, 0
                          leave
                          ret
                  Ответить
              • А вообще вот: https://gcc.godbolt.org/z/8cv5nqz9f
                unsigned long foo2(unsigned long a) {
                    return a * 2u;
                }
                
                unsigned long foo4(unsigned long a) {
                    return a * 4u;
                }
                
                unsigned long foo8(unsigned long a) {
                    return a * 8u;
                }
                
                unsigned long foo16(unsigned long a) {
                    return a * 16u;
                }
                
                unsigned long foo32(unsigned long a) {
                    return a * 32u;
                }
                
                unsigned long foo64(unsigned long a) {
                    return a * 64u;
                }
                
                unsigned long foo128(unsigned long a) {
                    return a * 128u;
                }
                
                unsigned long foo8589934592(unsigned long a) {
                    return a * 8589934592ull;
                }

                foo2(unsigned long):                   # @foo2(unsigned long)
                    lea     rax, [rdi + rdi]
                    ret
                foo4(unsigned long):                   # @foo4(unsigned long)
                    lea     rax, [4*rdi]
                    ret
                foo8(unsigned long):                   # @foo8(unsigned long)
                    lea     rax, [8*rdi]
                    ret
                foo16(unsigned long):                  # @foo16(unsigned long)
                    mov     rax, rdi
                    shl     rax, 4
                    ret
                foo32(unsigned long):                  # @foo32(unsigned long)
                    mov     rax, rdi
                    shl     rax, 5
                    ret
                foo64(unsigned long):                  # @foo64(unsigned long)
                    mov     rax, rdi
                    shl     rax, 6
                    ret
                foo128(unsigned long):                 # @foo128(unsigned long)
                    mov     rax, rdi
                    shl     rax, 7
                    ret
                foo8589934592(unsigned long):             # @foo8589934592(unsigned long)
                    mov     rax, rdi
                    shl     rax, 33
                    ret
                Ответить
        • Самой мякотки не заметил:
          > Значение переменной countPeople к примеру будет менять с другого потока

          Долбоёбам десятки лет ещё с сишки объясняют, что использовать volatile для обеспечения атомарности и синхронизации между потоками нельзя. Долбоёбы десятки лет пытаются использовать volatile вместо атомиков и нормальной синхронизации.
          Ответить
          • А нахуй тогда он нужен тогда?
            Ответить
            • В основном, для работы с MMIO.
              Ответить
              • Ясно. Значит как и ожидалось, ненужная хуета.
                А гостю, который спрашивал про volatile, зачем он понадобился?
                Ответить
                • > Значит как и ожидалось, ненужная хуета.

                  Ожидается мнение j123123. Потому что, как раз у него в контроллерах, такая хуета может быть.
                  Ответить
                  • В Si разве есть атомики? Небось функции поверх volatile int.
                    Ответить
                    • Есть. Начиная с C11.
                      _Atomic pitux или _Atomic(pitux). и куча тайпдефов типа atomic_bool → _Atomic _Bool

                      volatile с тредами не дружит: https://godbolt.org/z/zjsY9f1eK

                      > The atomic counter is 100000
                      > The non-atomic counter is 91488
                      Ответить
                      • Волатильность вообще к тредам не имеет отношения же, это же не ЙАЖА

                        Волательность это отключение оптимизаций компилятора, толстый намёк на сайдэффект любой хуйни, вплоть до ``a = 1; a = 2``

                        Проблема в том, что процессор занимается тем же, чем компилятор, и ему на volatile срать. Тут надо заборы (фенсы) ставить.
                        Ответить
                        • Приведи РЕАЛЬНЫЙ пример использование волатильной переменной
                          Ответить
                          • Указатель на видеопамять. Вообще любое ммио же, где к памяти можно обратиться еще как-то, а не только по указателю из программы
                            Ответить
                            • Я попросил реальный пример.
                              Вот так типа?
                              volatile char** pamyat = get_pamyat(50, 50);
                              while (pamyat[2][2] != 42) {
                                  Sleep(1);
                              }
                              Ответить
                              • На реальный пример:
                                https://github.com/ARMmbed/cmsis-core-k64f/blob/master/cmsis-core-k64f/MK64F12.h
                                Но общую идею ты уловил.
                                Что-то вроде:
                                #define HIRESCLOCK_ADDRESS = 0x0FA42
                                //...
                                volatile uint16_t* clock = (volatile uint16_t*)HIRESCLOCK_ADDRESS;
                                while (condition) {
                                    while (*clock < 1000) {
                                        do_stuff
                                    }
                                    *clock = 0; //reset watchdog
                                }
                                Ответить
                                • Я не ёбнутый, чтобы читать эту парашу и вникать действительно ли там нужно волатиле
                                  Ответить
                                  • Блядь, ну что тут вникать-то?
                                    Как еще сказать компилятору, что значение по адресу 0x0FA42 может само собой поменяться?

                                    Он иначе решил, что clock всегда меньше 1000, и выкинет твой вайл нахуй
                                    Ответить
                                    • Тебе проще тонну текста написать, или 5 строчек кода привести?
                                      Ответить
                              • Например, да.

                                Компилятор такой подумает: если я один раз уже проверил "памьять", то нахуя мне еще раз ее проверять-то?
                                Ответить
                                • А в атомиках уже внутри зашит volatile?
                                  Ответить
                                  • нужно читать про мемори модел кристов

                                    Вообще атомики гарантируют, что тебе из другого треда не будет видно кусок данных

                                    ну например у тебя 64 битная переменная, а система 32х битная, и изменение ее может занять две инструкции, в середину которых может влезть другой тред, увидеть говно, и охуеть

                                    Вот атомик этого позволяет избежать (а как именно -- зависит от платформы)

                                    Однако волатильности тут не гарантируется, и компилятор всё равно может выкинуть какие-то попытки записи в переменную, если они сразу перезаписываются

                                    так вижу

                                    (но лучше соулрейвер или гост пусть кажут_)
                                    Ответить
                                    • Кстати нашли возможную причину падения: питух делал std::move два раза на одном объекте, у которого внутри есть shared_ptr, из-за чего в shared_ptr осталось говно.
                                      Но это пока основная гипотеза и может быть не связано.
                                      Ответить
                                      • std::move несколько раз вообще не очень хорошо делать, не советую
                                        Ответить
                                        • Я знаю. Но блядь, я правил код совершенно в другом месте совершенно не подозревая, что какой-то питух клюнул похерил счётчик ссылок и я читаю удалённое говно.
                                          Ответить
                                          • Мне кажется, это говорит о не очень хорошем интерфейсе класса.
                                            Ответить
                          • /*volatile*/ int a, b;

                            thread1:
                            if (...) {
                            a = 0
                            b = 1
                            } else {
                            b = 0
                            a = 1
                            }

                            thread2:
                            if (a && b)
                            format("C:")

                            По мотивам реальных событий.
                            Но там был контроллер, и не знаю, были ли в компиляторе заборы. В моей голове не было. Бац-бац volatile и в продакшен, но искать, что через 25 дней датчик зависал из-за того что оптимизатор поменял местами два присваивания, пришлось долго.
                            Ответить
                            • Ну и какая разница с volatile и без него?
                              Ответить
                              • Перестало менять местами джва приджсваивания.
                                Ответить
                                • Тогда заебись, хороший пример.
                                  Ответить
                                  • осторожнее с таким примером, ткк процессор всё равно может поменять их местами

                                    Читни статьеца
                                    https://preshing.com/20120930/weak-vs-strong-memory-models/
                                    Ответить
                                    • Какой багор )))
                                      Можно на собеседовании такой вопрос задавать
                                      Ответить
                                      • не можно, на нужно

                                        Если на собеседовании тебе говорят, что "волатайл это для многопоточности", значит перед тобой жабаёб, который претворяется плюсовиком

                                        гоните его, насмехайтесь над ним
                                        Ответить
                                • что за процессор?
                                  Ответить
                            • ты смелый парень, или у тебя GIL
                              Ответить
                  • > Ожидается мнение j123123. Потому что, как раз у него в контроллерах, такая хуета может быть.

                    https://govnokod.ru/27266#comment610322
                    Ответить
                    • вы что в блокноте свои посты записываете?
                      Ответить
                      • Я выписываю журнал "золотые треды говнокода", каждый месяц выходит.
                        Ты -- нет?
                        Ответить
                        • я открываю свои посты годичной давности и думаю что я долбоеб

                          "золотые треды говнокода" я б и сам выписал
                          Ответить
          • > Долбоёбам десятки лет ещё с сишки объясняют, что использовать volatile для обеспечения атомарности и синхронизации между потоками нельзя

            Повторите пождста для https://govnokod.xyz/_28152/#comment-809432
            Ответить
        • Volatile — ключевое слово языков C/C++, которое информирует компилятор о том, что значение переменной может меняться из вне и что компилятор не будет оптимизировать эту переменную. Примерно такое описание volatile я встречал во многих книгах и туториалах, и каждый раз мне не удавалось понять что же хотел сказать автор.

          какой анскилл
          Ответить
          • >из вне
            И придёт оно однажды во сне
            Закричит и похоронит
            Излечит и скажет
            А НУ-КА ВСТАТЬ!
            Ответить
          • и каждый раз мне не удавалось понять что же хотел сказать автор, не удалось мне это и сейчас, а писать о том, в чём я не понимаю, я не хочу, так что статью свою я заканчиваю, всего вам доброго, и с праздником дорогие друзья
            Ответить
        • >Самая затратная операция в этом примере не присваивание ячейке массива какого-либо значения и не инкремент счетчика, а именно операция сравнения, поэтому компилятор оптимизирует это примерно вот так:



          какой царский анрол ))
          Ответить
    • Бесконечный оффтоп имени nepeKamHblu_nemyx.
      Ответить
      • Напомню, что автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx. Остерегайтесь подделок. Берегите себя и своих близких. Кок!
        Ответить
      • Если кто забыл, то автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx.
        Ответить
      • Хочу напомнить, чтобы вы берегли себя и своих близких.

        // NEPEKAMHBLU_NEMYX
        Ответить
      • nepeKamHblu_nemyx на техническом обслуживании
        Ответить
      • Я осуществил перекат в настоящее время. А поскольку автоматические перекаты в настоящее время осуществляются только с аккаунта nepeKamHblu_nemyx, перекат осуществил я не автоматически.
        Ответить
      • Если перекат осуществился, то одно из трёх:
        - его осуществил nepeKamHblu_nemyx
        - он осуществился не автоматически
        - время не настоящее

        Сможете доказать это на Coq?
        Ответить
    • Цифровые профессии 2 и 3 этапы
      Здравствуйте
      Примите участие в проекте «Цифровые профессии» — обучение в сфере ИТ с господдержкой
      Курсы дистанционные. Обучение проводят государственные университеты и ведущие цифровые компании, например, Нетология, Яндекс, GeekBrains, СберУниверситет, 1С Образование, Университет ИТМО, Финансовый университет при Правительстве РФ
      Доступны более 55 курсов: «Основы тестирования ПО», «Frontend программист», «Веб-дизайнер», «Интернет-маркетолог», «ИТ-рекрутер», «Менеджер проектов» и многие другие
      Ответить
    • Что-то у меня хуз перестал с мобилы открываться.
      Ответить
    • https://google.com/search?q=nyTuHckuu_nemyx

      Возможно, вы имели в виду: нитунскую немых
      Ответить

    Добавить комментарий