М.Двач / Программирование

Этого треда уже нет.
Это копия, сохраненная 14 июля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

78 Кб, 792x1023

C Programming Language #8 15 Июн, 20:44 #770283 В конец треда | Веб

Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Что читать:

- Классика от Отцов: http://www.ime.usp.br/~pf/Kernighan-Ritchie/C-Programming-Ebook.pdf
- Годное пособие для гуманитариев: http://c.learncodethehardway.org/book/
- Немного примеров хорошего стиля: http://www.oualline.com/books.free/style/index.html
- ООП, например: http://www.cs.rit.edu/~ats/books/ooc.pdf
- Стандарт ISO/IEC 9899:1999 (он же C99): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf (драфт) не драфт ищем на торрентах
- Стандарт ISO/IEC 9899:2011 (он же C11): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf (драфт)
- man/Dash/zealdocs

Чем конпелировать:

- Очевидный GCC.
- clang: оче годно, батя рекомендует. Дрочим на --analyze.
- Intel C++ Compiler: оптимизации, тысячи их.
- Visual Studio 2015 Community Edition: внезапно этим стало можно пользоваться, особенно с тулсетом clang/C2. Поддержка C11 на уровне "есть все, что тебе понадобится в реальном проекте плюс кривая библиотека". Анализатор кода в комплекте.
- Pelles C (шиндоуз онли): поучиться, вкатиться в C11 (стандарт полностью реализован, имеются в том числе threads.h и прочие stdatomic.h), но количество багов в оптимизаторе и редкие апдейты напрочь отбивают желание собирать этим что-то сколько-нибудь серьезное.
- TCC: очень маленький компилятор с багами и неполной поддержкой C99. С ключом -run умеет компилировать код в память и запускать его, что позволяет писать скрипты прямо на сишечке.

Что еще почитать:

http://c-faq.com/
FAQ из comp.lang.c. Древний, но все еще актуален.

Stephen Prata "C Primer Plus, 6th Edition" (2014)
Свежая знает про C89, C99, C11, описывает различия, объемная около тысячи страниц, годная хотя есть некоторые шероховатости, с вопросами, упражнениями и ответами. Читать после K&R или до.

Samuel P. Harbison, Guy L. Steele Jr. "C: A Reference Manual, 5th Edition" (2002)
Ебаный пересказ стандартов C89 и C99 (включая стандартную библиотеку). Для не осиливающих стандарт в оригинале. Читать в качестве подготовки к собеседованиям (есть задачник с ответами) и для ознакомления с масштабами пиздеца перед написанием своего парсера/компилера.

Peter Van Der Linden "Expert C Programming. Deep C Secrets" (1994)
"Си: грязные истории". Смехуечки, немного объяснений, чем обусловлены особенности языка, всем известные подводные камни кто там ругал косяки в JS? у нас в сишечке их гораздо больше, просто они лучше спрятаны, немного байтоебли и непонятно откуда взявшаяся глава про старинные плюсы. Читать в качестве сказки на ночь (на пару вечеров хватит).

Ben Klemens "21st Century C: C Tips from the New School" (2012)

Stephen G. Kochan "Programming in C (3rd Edition или 4th Edition, если найдется)" (2014)

MISRA Ltd. "Guidelines for the Use of the C Language in Critical Systems" (2013)
Набор рекомендаций по написанию надежного кода на C (промышленный стандарт). Читать - однозначно, следовать - вдумчиво и без фанатизма. Также можно посмотреть https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard

Еще более длинный список: http://www.iso-9899.info/wiki/Books#Learning_C

Прошлые треды:

- https://arhivach.org/thread/106153/
- https://arhivach.org/thread/131949/
- https://arhivach.org/thread/140570/
- https://arhivach.org/thread/153698/
- https://arhivach.org/thread/155908/
- https://arhivach.org/thread/173837/
- https://arhivach.org/thread/180461/

Шапка: http://piratepad.net/bJ1SdmkZyu

Ответы>>774838>>777814>>778470>>779105

sage 15 Июн, 23:59 #2 #770487

Насру первым.

16 Июн, 00:36 #3 #770520

А что не так с линковкой в go?

40 Кб, 300x375

16 Июн, 01:27 #4 #770548

>>770264
Линк видел? Нажать побоялся?

Тебе дали возможность узнать что-то о чем-то за пределами твоего ванямирка. Но нахуй тебе это надо же. Kids these days.

Ответы>>770603

16 Июн, 04:41 #5 #770603

>>770548
Несколько лет назад, когда 64-битные системы еще не все заполонили ставил себе Haiku. Чудесная ОС. Жаль что не взлетела. На моем 4 пентиуме выдавала чудеса производительности в области проигрывания видеофайлов. На ней можно было одновременно запустить дохуя HD видео на и они не глючили. В шиндовс и прыщах такое сделать было невозможно.
мимо-крокодил

Ответы>>770623

16 Июн, 06:12 #6 #770623

>>770603
>чудеса производительности
тото анон не о производительность, а об архитектуре ОС, в частности он абассал концепцию "все есть файл", но и в замен ничего не предложил.

Ответы>>770624

16 Июн, 06:21 #7 #770624

>>770623
Ни один линк не был кликнут, такова судьба линков в /pr. Вот хуй же знает что с этим делать, никто читать не умеет, букв не знает, продолжает задавать глупые вопросы.

В AS400 файлов вообще не было изначально, например.

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

> SSA is not an implementation detail, it's a totally different way of thinking about a code. It is a way to turn your messy imperative code into a nice, clean, immutable functional code that is suitable for analysis.

Things that were either exceptionally complex or totally unthinkable in the era of three-address IRs are laughably trivial in SSA or CPS. E.g., moving loop invariants, detecting loop induction variables, transforming simple CFG into selects, ADCE and constant folding - all this stuff is absolutely trivial in SSA

Ответы>>770625>>770629

16 Июн, 06:33 #8 #770625

>>770624
>несвежим ваткомом и спрашивал про современные техники оптимизации

SSA-представление было разработано исследователями Ron Cytron, Jeanne Ferrante, Barry Rosen, Mark Wegman и Ken Zadeck в IBM в 80-х годах.

ох, кек

>>770624
>AS400 файлов вообще не было изначально
ну и скорее твой же вопрос, как у них там с правами доступа на объекты?

Ответы>>770628

16 Июн, 07:09 #9 #770627

Я тут криптоты нарыл, VS вставляет код телеметрии в проект:
https://www.infoq.com/news/2016/06/visual-cpp-telemetry

Мегайоба оптипизирующий конпелятор, кек^3

Ответы>>770630>>770643

16 Июн, 07:16 #10 #770628

>>770625
Угадай, имплементировано ли оно в Watcom C.
В угадывании тебе сможет помочь выяснение момента появления этой техники в GCC.

AS400 - одна из самых продвинутых систем с точки зрения безопасности и разграничения прав доступа.
Специальная роль "security officer", например, там была заложена с самого начала.

Ответы>>770645

55 Кб, 600x400

16 Июн, 07:16 #11 #770629

>>770624
>В AS400 файлов вообще не было изначально, например.

Ответы>>770641

16 Июн, 07:19 #12 #770630

>>770627
Иии чо? Мой йобавирус будет залочен до релиза? Или эта хуитка спихдит кредитку, выебет кота и убьёт брата?

Раздули конечно из этого невесть что.

16 Июн, 07:35 #13 #770638

Читал до Праты - С++ программирование Герберта Шилдта, потом мне посоветовали книгу Стивена Праты С++ примеры и упражнения, начал читать оглавление и там написано - Прежде чем начинать изучать С++ вам возможно, прийдется начать изучать Си, и вот я здесь, изучаю на данный момент 4 главу книги Праты по Си, там подробно описаны строки, спецификаторы преобразования, в самом начале книги описали побитовые операций, сука, более идеального способа подачи информаций я ещё не видывал, и если хотите начать изучать Си, читайте Прату, не слушайте быдло-долбоебов которые говорят, что эта книга сложная, нихуя подобного, она пизже, чем то, что вам дадут в итоге, разница видна сразу.
Алсо хотел бы спросить, так как пишу программки на VS2015, то хотел бы спросить, программы Си теперь полностью совместимы с С++ ? Ибо файл сохраняется не в .c а в .cpp...

Ответы>>770643>>770644

16 Июн, 07:40 #14 #770641

>>770629
dz хотя бы знает как было устроено в AS400 (в общих чертах), в отличие от тебя.

16 Июн, 07:41 #15 #770643

>>770627
> вставляет код телеметрии
Во-первых, уже не вставляет (если линковаться с CRT статически - осталось, но отключается документированной магией no_telemetry.obj). Во-вторых, даже в активном состоянии оно бы всего лишь отчитывалось об именах длл и времени загрузки - обычное профилирование, ничего интересного.

>>770638
Нет, между Си и C++ в Си-стиле есть разница. Сходи в опции проекта, выключи прекомпилированные заголовки, убери stdafx.h из проекта, а файл .c отлично создается (и компилируется именно как C), если при сохранении вручную указать расширение .c, а не .cpp.

Ответы>>770646>>770647

16 Июн, 07:42 #16 #770644

>>770638
Прата охуенен для начинающих, никто не спорит.

> программы Си теперь полностью совместимы с С++
Нет, конечно. Разные языки, разные стандарты.

16 Июн, 07:42 #17 #770645

>>770628
>В угадывании тебе сможет помочь выяснение момента появления этой техники в GCC.
ты приведи цифры, насколько твой модный, современеый гцц с полной оптимизацией дает пасасать старому ваткому с такой же степенью оптимизацией, а все эти модные технологии и фичи оставь хипстерам.
> "security officer"
в чем ее приемущество?

Ответы>>770648

16 Июн, 07:43 #18 #770646

>>770643
>Во-первых, уже не вставляет
от самого факта миня аж триасет

16 Июн, 07:44 #19 #770647

>>770643
Блять точно, переименовать же надо было... Спасибо.

16 Июн, 07:44 #20 #770648

>>770645
>ты приведи
Ты ничего не хочешь сделать самостоятелдьно, даже на линк не можешь кликнуть.
Как ты вообще дожил такой до своих скольки-там лет в дикой природе?

>> "security officer"
>в чем ее приемущество?
Я тебе дал все ключевые слова, по которым можно найти информацию.
В прошлом треде даже советовал конкретную книжку, могу повторитьт - "Inside AS/400" by Frank G. Soltis.
Тебе этого недостаточно?

Ответы>>770650

16 Июн, 07:50 #21 #770650

>>770648
>Ты ничего не хочешь сделать самостоятелдьно,
мне это не нужно, есть ты, который без ума от каких то там сферических технологий без конкретных доказательств, потрудись их превести на примерах гцц и ваткома
>Я тебе дал все ключевые слова, по которым можно найти информацию.
тоесть абасать Plan9 с ее срвером авторизации и файловым подходом, можно не вникая в детали?

Ответы>>770661

16 Июн, 07:58 #22 #770653

Что думаете за go?

Ответы>>770662>>770664

16 Июн, 08:14 #23 #770661

>>770650
>мне это не нужно
Тогда зачем вопросы задаешь? Пилите ваши сокеты, не отвлекайтесь.

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

Ответы>>770697

196 Кб, 1280x960

16 Июн, 08:18 #24 #770662

>>770653
Думаем что можно только позавидовать железобетонной репутации Роба Пайка и Кена Томпсона. Если их даже после разработки Go продолжают считать неглупыми людьми, то теперь, вероятно, такое мнение о них сохранится в любом случае, чтоб они не сделали. Даже если повторят любое из достижений лауреатов премии Дарвина — останутся в нашей памяти как неглупые люди

16 Июн, 08:18 #25 #770664

>>770653
Хорошая параша, пытался ей обмазаться. Богатая библиотека, много чего попытались упростить. Единственное, слайсы какие-то ебанутые. Но в итоге из-за простоты своей он меня и оттолкнул. Не могу я без байтоебства и понимания того, что происходит. Сейчас пытаюсь понять C++11/14, такая-то зарядка для мозгакоторого нет

16 Июн, 09:22 #26 #770697

>>770661
>Я на конкретном примере конкретных технических решений Plan9 тебе показал
что ты там показал, пиздунишка? ты сразу обосрался и слил

Ответы>>770709

16 Июн, 09:47 #27 #770708

Ну а мы продолжаем компилерсрач, благо мой битоебный тест был еще не стерт и я поигрался с конпеляторами.

http://pastebin.com/VSiGMPhm

Итог:

gcc -O3
sample.bin:50000003
c1: 50000003
sub1: 0.030000 seconds
c2: 50000003
sub2: 0.090000 seconds

wcl386 /onkhtx bittest.c
c1: 50000003
sub1: 0.156000 seconds
c2: 50000003
sub2: 0.109000 seconds

cl /O2 bittest.c
c1: 50000003
sub1: 0.310000 seconds
c2: 50000003
sub2: 0.068000 seconds

кек

16 Июн, 09:48 #28 #770709

>>770697

>>769952

Ответы>>770712

16 Июн, 09:53 #29 #770712

>>770709
ты против прерываний как системных вызовов или концепции "все есть файл", определись.

16 Июн, 12:38 #30 #770826

Посоветуйте статью типа "Указатели для дебилов". Ну или хотя бы на пальцах объясните, зачем они нужны и в чём разница между

Ответы>>770829>>770831>>770962>>770977>>770980>>771633

16 Июн, 12:39 #31 #770827

>между звездочка-Hui и амперсанд-Hui
Фикс.

16 Июн, 12:40 #32 #770829

>>770826
чтобы не плодить сущности.

106 Кб, 715x723

16 Июн, 12:46 #33 #770831

>>770826

16 Июн, 14:54 #34 #770962

>>770826
Указатели нужны, чтобы было легче выстрелить себе в ногу.
Где ещё у тебя будет возможность выйти за пределы массива? Или обратиться к несуществующей переменной?

А серьёзно, например, аргументы в функцию передают по значению, то есть копируются. А передавая указатель на переменную ты в функции можешь поменять её значение. Также структуры можно в функцию передать по указателю, что заметно экономнее.

Ответы>>770973>>771228

16 Июн, 15:00 #35 #770973

>>770962
>структуры можно в функцию передать по указателю, что заметно экономнее
Вот из-за таких как ты и придумали references, чтоб ты указатели в функции не передавал и не мутировал их там.

Ответы>>770986>>771645

16 Июн, 15:02 #36 #770977

>>770826
Что за блджад поколение выросло, до википедии не могут дойти https://en.wikibooks.org/wiki/C_Programming/Pointers_and_arrays

16 Июн, 15:05 #37 #770980

>>770826
Указатели не понимал только жид Спольский и его друганы. Любой славяно-ариец знает, что это всего лишь целое число, адрес в памяти некоей переменной, содержащей нужные ему данные.

16 Июн, 15:12 #38 #770986

>>770973
Сам то понял, что написал?

Ответы>>771228

16 Июн, 18:34 #39 #771228

>>770986
Этот дурень наверно спутал тред с плюсовым и говорит о константных ссылках.

>>770962
>Также структуры можно в функцию передать по указателю, что заметно экономнее.
Не учи новичков хуйне. Выигрыш в перформансе будет только при передаче реально больших структур (а небольшие наоборот выгоднее передавать по значению), ты не в 85-м.

Ответы>>771260

16 Июн, 19:14 #40 #771260

>>771228
Поясни, почему передать указатель не экономнее по памяти, чем пихать всю структуру в стек?

Ответы>>771262>>771292

16 Июн, 19:16 #41 #771262

>>771260
Да и по скорости.

16 Июн, 19:58 #42 #771292

>>771260
По памяти - нет, выигрыша не будет нигде, когда есть ограничение - приходится держать в одном экземпляре.

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

Ответы>>771293>>771306

16 Июн, 19:58 #43 #771293

>>771292
>кол-ва индерекций данных
Без "данных", конешно жеж.

16 Июн, 20:31 #44 #771306

>>771292
Все так, но когда захочется изменять что-то в передаваемой по значению структуре, придется править все вызовы функции, а вот подход "всегда передавать указатель, а потом делать локальную копию структуры при необходимости" этим недостатком не страдает. А по значению имеет смысл передавать те структуры, содержимое которых ты мог бы передать в качестве отдельных аргументов (вроде vector3 pos вместо float x, float y, float z).

17 Июн, 01:38 #45 #771633

>>770826
> зачем они нужны
Чтобы решать проблемы.
https://en.wikipedia.org/wiki/Fundamental_theorem_of_software_engineering

17 Июн, 02:10 #46 #771645

>>770973
>references
синтаксический сахарок

17 Июн, 05:11 #47 #771697

Bump

17 Июн, 09:01 #48 #771754

реквестирую фтотку си кодерши

Ответы>>771759

62 Кб, 600x600

17 Июн, 09:11 #49 #771759

>>771754
>>771754
Ты забыл приложить няшку.
Поэтому фотка будет анти-Си кодерши.
http://www.codersatwork.com/fran-allen.html
https://en.wikipedia.org/wiki/Frances_E._Allen

> -Seibel-: When do you think was the last time that you programmed?

> -Allen-: Oh, it was quite a while ago. I kind of stopped when C came out. That was a big blow. We were making so much good progress on optimizations and transformations. We were getting rid of just one nice problem after another. When C came out, at one of the SIGPLAN compiler conferences, there was a debate between Steve Johnson from Bell Labs, who was supporting C, and one of our people, Bill Harrison, who was working on a project that I had at that time supporting automatic optimization.

> The nubbin of the debate was Steve's defense of not having to build optimizers anymore because the programmer would take care of it. That it was really a programmer's issue. The motivation for the design of C was three problems they couldn't solve in the high-level languages: One of them was interrupt handling. Another was scheduling resources, taking over the machine and scheduling a process that was in the queue. And a third one was allocating memory. And you couldn't do that from a high-level language. So that was the excuse for C.

> -Seibel-: Do you think C is a reasonable language if they had restricted its use to operating-system kernels?

> -Allen-: Oh, yeah. That would have been fine. And, in fact, you need to have something like that, something where experts can really fine-tune without big bottlenecks because those are key problems to solve.

> By 1960, we had a long list of amazing languages: Lisp, APL, Fortran, COBOL, Algol 60. These are higher-level than C. We have seriously regressed, since C developed. C has destroyed our ability to advance the state of the art in automatic optimization, automatic parallelization, automatic mapping of a high-level language to the machine. This is one of the reasons compilers are. basically not taught much anymore in colleges and universities.

62 Кб, 600x600

17 Июн, 09:11 #49 #771759

>>771754
>>771754
Ты забыл приложить няшку.
Поэтому фотка будет анти-Си кодерши.
http://www.codersatwork.com/fran-allen.html
https://en.wikipedia.org/wiki/Frances_E._Allen

> -Seibel-: When do you think was the last time that you programmed?

> -Allen-: Oh, it was quite a while ago. I kind of stopped when C came out. That was a big blow. We were making so much good progress on optimizations and transformations. We were getting rid of just one nice problem after another. When C came out, at one of the SIGPLAN compiler conferences, there was a debate between Steve Johnson from Bell Labs, who was supporting C, and one of our people, Bill Harrison, who was working on a project that I had at that time supporting automatic optimization.

> The nubbin of the debate was Steve's defense of not having to build optimizers anymore because the programmer would take care of it. That it was really a programmer's issue. The motivation for the design of C was three problems they couldn't solve in the high-level languages: One of them was interrupt handling. Another was scheduling resources, taking over the machine and scheduling a process that was in the queue. And a third one was allocating memory. And you couldn't do that from a high-level language. So that was the excuse for C.

> -Seibel-: Do you think C is a reasonable language if they had restricted its use to operating-system kernels?

> -Allen-: Oh, yeah. That would have been fine. And, in fact, you need to have something like that, something where experts can really fine-tune without big bottlenecks because those are key problems to solve.

> By 1960, we had a long list of amazing languages: Lisp, APL, Fortran, COBOL, Algol 60. These are higher-level than C. We have seriously regressed, since C developed. C has destroyed our ability to advance the state of the art in automatic optimization, automatic parallelization, automatic mapping of a high-level language to the machine. This is one of the reasons compilers are. basically not taught much anymore in colleges and universities.

Показать весь текст
Ответы>>771766>>771770>>771879

17 Июн, 09:53 #50 #771766

>>771759
они там в ибм все какието ебанутые

Ответы>>771775

17 Июн, 09:59 #51 #771770

>>771759
Я не понимаю, когда я читал историю C, было очевидно, что он стал популярным совершенно естественным путём, никто его насильно не форсил. Если так вышло, что этот язык оказался более удобен, может, есть смысл задуматься всем тем, кто ратовал за эти свои amazing languages, которые не стали так известны.

17 Июн, 10:17 #52 #771774

Поясните за WinAPI на Си.

Ответы>>771780

17 Июн, 10:17 #53 #771775

>>771766
Тебе лучше знать.

> To quote her A.M. Turing Award citation:

> Fran Allen's work has had an enormous impact on compiler research and practice. Both alone and in joint work with John Cocke, she introduced many of the abstractions, algorithms, and implementations that laid the groundwork for automatic program optimization technology. Allen's 1966 paper, "Program Optimization," laid the conceptual basis for systematic analysis and transformation of computer programs. This paper introduced the use of graph-theoretic structures to encode program content in order to automatically and efficiently derive relationships and identify opportunities for optimization. Her 1970 papers, "Control Flow Analysis" and "A Basis for Program Optimization" established "intervals" as the context for efficient and effective data flow analysis and optimization. Her 1971 paper with Cocke, "A Catalog of Optimizing Transformations," provided the first description and systematization of optimizing transformations. Her 1973 and 1974 papers on interprocedural data flow analysis extended the analysis to whole programs. Her 1976 paper with Cocke describes one of the two main analysis strategies used in optimizing compilers today. Allen developed and implemented her methods as part of compilers for the IBM STRETCH-HARVEST and the experimental Advanced Computing System. This work established the feasibility and structure of modern machine- and language-independent optimizers. She went on to establish and lead the PTRAN project on the automatic parallel execution of FORTRAN programs. Her PTRAN team developed new parallelism detection schemes and created the concept of the program dependence graph, the primary structuring method used by most parallelizing compilers.

> Allen was a professor at New York University from 1970–73.[2] Allen became the first female IBM Fellow in 1989. In 2007, the IBM Ph.D. Fellowship Award was created in her honor

Ответы>>771784

17 Июн, 10:21 #54 #771779

>>771771
Какого в пень юникс-вея, похеру всем был вей.
Юниск стал популярен потому что малолетние долбоебы, которые сейчас играют в NodeJS, тогда до серьезных компьютеров не допускались. Все во что они могли играться это в тормозные недокофеварки типа PDP, куда они радостно и ставили Unix, потому что нормальная ОС на этом недожелезе во-первых, тормозила, во-вторых с ней надо было разбираться. С Юниксой разбираться было нечего, потому что в этой недосистеме и сейчас-то нихрена нет, а тогда не было совсем ничего.

Ответы>>771785

17 Июн, 10:23 #55 #771780

>>771774
WinRT уже, посмотри на календарь.
На Си его тоже можно программировать, тот же COM, только в профиль.

Ответы>>771788>>772535

17 Июн, 10:26 #56 #771784

>>771775
теперь у IBM просто куча оптимизирующих конпеляторов, тетя типичный йоба-рисечер-кукаретик.

Ответы>>771796>>771804

11 Кб, 247x248

17 Июн, 10:27 #57 #771785

>>771779
>потому что нормальная ОС

17 Июн, 10:33 #58 #771788

>>771780
Везде один Copy Paste Programming с++
А на Си введение есть?

Ответы>>771806

17 Июн, 10:38 #59 #771796

>>771784
Компилятор Фортрана до сих пор охуенен.
Компилятор APL тоже.
На сишечке ты для мейнфрейма много не напрограммируешь.

С языками программирования у IBM всегда было неплохо. Например, PowerShell списывали с https://en.wikipedia.org/wiki/IBM_i_Control_Language

Ответы>>771810

17 Июн, 10:41 #60 #771804

>>771784
>типичный йоба-рисечер-кукаретик
IBM сейчас ведущая компьютерная корпорация. Ничем не уступает гуглу по финансовым показателям. А по разработкам дает ему пососать на 10 лет вперед.

Ответы>>771810>>771812

17 Июн, 10:44 #61 #771806

>>771788
http://stackoverflow.com/questions/7436144/using-winrt-from-c/7437006#7437006

17 Июн, 10:48 #62 #771810

>>771796
>Фортрана
лютейшее говно мамонта, хуже может быть только бейсик
>PowerShell
только до баша ей еще очень далеко
>>771804
>А по разработкам дает ему пососать на 10 лет вперед
конечно, так далеко, что сервера от IBM синоним лютейшего пиздеца

Ответы>>771815>>771857>>771997>>771999

17 Июн, 10:50 #63 #771812

>>771804
>Ничем не уступает гуглу
Сорта пузерей. Прыщавый задрот из какого то там гаражного микрософта не напрягаясь дал пасасать всему IBM.

17 Июн, 10:54 #64 #771815

>>771810
> Фортрана
> лютейшее говно мамонта
Школьник плиз. Фортран ЛУЧШИЙ язык программирования на данный момент. Но поработать с ним дают только тем, кто имеет phd.

Ответы>>771819>>771822>>771823>>771825>>771855

17 Июн, 10:59 #65 #771819

>>771815
Продолжай писать ножиком в перфокарты.

17 Июн, 11:01 #66 #771822

>>771815
>Но поработать с ним дают только тем, кто имеет phd
надеюсь хотя бы на PDP-2

17 Июн, 11:01 #67 #771823

>>771815
> Фортран ЛУЧШИЙ
даже JS не напрягаясь нассыт фортрану в ротешник

31 Кб, 500x500

17 Июн, 11:03 #68 #771825

>>771815
>PhD
>Программирование
Ты сам нассал себе в ротейшик.

17 Июн, 11:05 #69 #771830

Школьнички, вот вы никогда не задумывались почему в США изобилие еды? И при чем тут Фортран? Подумайте над этим на досуге. Тогда возможно поймете почему от JS нет изобилия еды, а от Фортрана есть.

Ответы>>771835

17 Июн, 11:10 #70 #771835

>>771830
гладиолус же

17 Июн, 11:31 #71 #771855

>>771815
Фортран - язык программирования, конечно, отвратительный. Но речь была не о нем, а о качестве его трансляторов. До которого всем - как до Луны.

Ответы>>771858>>771874>>771898

17 Июн, 11:33 #72 #771857

>>771810
>сервера от IBM синоним лютейшего пиздеца
Сберу не забудь рассказать, у них процессинг на них крутится.
Правда, на нормальные машины денег не хватило, наскребли только на 795. Но справляются и они.

Ответы>>771870

17 Июн, 11:33 #73 #771858

>>771855
Такое то маняврирование.

Ответы>>771861

17 Июн, 11:35 #74 #771861

>>771858
Маневрирование?

Началось вот с чего
> теперь у IBM просто куча оптимизирующих конпеляторов

В ответ пришлось напомнить о качестве IBM-овских трансляторов, которыми и занималась анти-С программистка Allen.

Ответы>>771872

17 Июн, 11:42 #75 #771870

>>771857
полугосконторам в приказном порядке навязывают ИБМ, инфа 150%

17 Июн, 11:43 #76 #771872

>>771861
>качестве IBM-овских трансляторов
чинастайл

Ответы>>771890

17 Июн, 11:44 #77 #771874

>>771855
>Но речь была не о нем, а о качестве его трансляторов. До которого всем - как до Луны.
он сосет с проглотом когда транслирует или что?

Ответы>>771890

17 Июн, 11:54 #78 #771879

>>771759
>Seibel
Это тот уебан, что свою CRM форсит?

17 Июн, 12:00 #79 #771890

>>771872
>>771874
> it seems that even in 2015, Fortran is being used a lot.
> I just came across this (alternate link) list which basically is a list of 13 codes approved by DOE's OCLF facility to run on the 300-petaFLOPS Summit machine which will be made available to researchers in 2018. I tried to find the main language used for the code (based on a quick google search) and here is what I found:

XGC Fortran

SPECFEM Fortran

ACME Fortran (Bunch of climate codes)

DIRAC Fortran (Mostly)

FLASH Fortran

GTC Fortran

HACC C/C++

LS-DALTON Fortran (some C)

NAMD C/C++

NUCCOR Fortran

NWCHEM Fortran

QMCPACK C++

RAPTOR Fortran

> So out of 13 codes, at least 10 (based on my quick search) appear to be written in Fortran. Not bad for a 50 year old language.

17 Июн, 12:00 #79 #771890

>>771872
>>771874
> it seems that even in 2015, Fortran is being used a lot.
> I just came across this (alternate link) list which basically is a list of 13 codes approved by DOE's OCLF facility to run on the 300-petaFLOPS Summit machine which will be made available to researchers in 2018. I tried to find the main language used for the code (based on a quick google search) and here is what I found:

XGC Fortran

SPECFEM Fortran

ACME Fortran (Bunch of climate codes)

DIRAC Fortran (Mostly)

FLASH Fortran

GTC Fortran

HACC C/C++

LS-DALTON Fortran (some C)

NAMD C/C++

NUCCOR Fortran

NWCHEM Fortran

QMCPACK C++

RAPTOR Fortran

> So out of 13 codes, at least 10 (based on my quick search) appear to be written in Fortran. Not bad for a 50 year old language.

Показать весь текст

17 Июн, 12:13 #80 #771898

>>771855
Фортран конпелируется в быстрый код только за счет того, что язык очень бедный, оптимизации простые, компилятору много думать не надо.

Ответы>>771905

17 Июн, 12:17 #81 #771905

>>771898
Именно по этой, вероятно, причине гнутый фортран сливает фортрану от IBM в разы. И умеет компилировать в архитектуры отличные от говнопекашечек.

17 Июн, 14:43 #82 #771997

>>771810
powershell именно как шелл уделывает баш
проблема в том что под винду никогда не было годных эмуляторов терминала
но ведь шелл и эмуль - разные вещи

17 Июн, 14:46 #83 #771999

>>771810
> сервера от IBM синоним лютейшего пиздеца
блядь, ты ебанутый, не пиши в том что не разбираешься
на них была и есть охуенная аппаратная виртуализация
просто несколько лет назад костылями прикрутили аппаратную виртуализацию и в x86, после этого стало выгодно везде пользовать x86 машины

Ответы>>772035>>772092>>772406

17 Июн, 15:22 #84 #772027

Есть ли в си возможность выполнить функцию n раз не прибегая к циклам? Каким-нибудь функциональным образом?

Ответы>>772041

17 Июн, 15:29 #85 #772035

>>771999
Кластеры так и не прикрутили.

https://en.wikipedia.org/wiki/IBM_Parallel_Sysplex

17 Июн, 15:36 #86 #772041

>>772027
http://www.cprogramming.com/tutorial/c/lesson16.html

17 Июн, 16:27 #87 #772092

>>771999
>охуенная аппаратная виртуализация
пасасация, такое же говно как и например Лотос Домино

Ответы>>772105

17 Июн, 16:35 #88 #772105

>>772092
Lotus Domino на момент своего появления была невъебенно прорывной системой. Это был интранетный интернет когда в мире еще не было того интернета как мы его сейчас знаем.

Про LPAR же ты знаешь ровным счетом ничего, как видно из твоего аргументированнейшего ответа.

Ответы>>772148>>772151

17 Июн, 17:16 #89 #772148

>>772105
>на момент своего появления была невъебенно прорывной системой
1989? но нахуя это убожество в 2000?

Ответы>>772216

17 Июн, 17:19 #90 #772151

>>772105
>LPAR
нет не знаю, но я знаю, что админы в госконторах настолько днище, что они просто накатят виндовз на сервер и сверху поставят скюл и им поебать на все эти LRAP

Ответы>>772216

17 Июн, 18:11 #91 #772216

>>772151
Ты до сих пор продолжаешь под словом "сервер IBM" понимать "ПеКа-сервер", несмотря на то что уже много лет назад IBM весь бизнес по производству этих "ПеКа-серверов" для голодранцев продала Lenovo?

>>772148
Если клиентам нравится и они платят деньги, зачем же им отказывать? Это тебе не нодэжээсочка, где время жизни фреймворка измеряется в секундах, и пердолься с ним дальше как хочешь, если тебя по неопытности удосужило на нем что-то построить

Ответы>>772218>>772327

17 Июн, 18:14 #92 #772218

>>772216
IBM xSeries 346 вот это например, в трех шкафах стояли

Ответы>>772229

162 Кб, 1024x768

17 Июн, 18:23 #93 #772229

>>772218
Это Пека-"серверы", которые давно проданы китайцам, причем здесь они? В этом треде о ПеКа-"серверах" никто не упоминал кроме тебя. Информацию о 795, которые упоминались, и других серверах IBM ты можешь нагуглить самостоятельно (я в этом уже немного сомневаюсь, судя по тому что ты не смог этого сделать до сих пор, но вряд ли чем-то смогу тебе помочь если так). Могу уверить тебя в одном - Windows на них поставить невозможно.

Ответы>>772251

17 Июн, 18:32 #94 #772240

Аноны помогите, есть некая функция.

void WriteFormatted(const char *format, ...){
}

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

Ответы>>772256>>772540

17 Июн, 18:39 #95 #772251

>>772229
>Могу уверить тебя в одном - Windows на них поставить невозможно.
значит им не место в госконторах

Ответы>>772264

17 Июн, 18:42 #96 #772256

>>772240
варибал аргументз

Ответы>>772257

17 Июн, 18:42 #97 #772257

>>772256
спасибо

17 Июн, 18:53 #98 #772264

>>772251
В провинциальных отделениях - может быть. Хотя когда-то стояли и в отделениях одной госконторы Alpha-серверы от Digital, и крутился на них MUMPS.
А в головном офисе - отчего же, и мейнфреймы бывают.

17 Июн, 19:57 #99 #772327

>>772216
>нодэжээсочка, где время жизни фреймворка измеряется в секундах
Ай не пизди. Ни один крупный фреймворк на ноджс не умер.

17 Июн, 20:34 #100 #772374

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

Ответы>>772384

17 Июн, 20:43 #101 #772384

>>772374
Ну тащи уже сюда свои задачки.

Ответы>>772385>>772389

17 Июн, 20:44 #102 #772385

>>772384
Да похуй на задачки, блядь
Что делать, как научиться их решать, сука?

17 Июн, 20:47 #103 #772389

>>772384
Например, есть задачка такая
Проверить, есть ли в строке комбинации из двух букв. Учитывая, что эти буквы могут быть разных регистров.

Вот, когда я это читаю у меня в голове вообще нихуя не появляется, сука.
ну, записать строк, а потом что, сука? Просто нету идей

Ответы>>772392>>772461>>772541>>772543

17 Июн, 20:52 #104 #772392

>>772389
----------------------------------------------------------------------

strstr --

Locate the first instance of a substring in a string.

Results:
If string contains substring, the return value is the
location of the first matching instance of substring
in string. If string doesn't contain substring, the
return value is 0. Matching is done on an exact
character-for-character basis with no wildcards or special
characters.

Side effects:
None.

----------------------------------------------------------------------

Ответы>>772404

17 Июн, 20:55 #105 #772395

Если тебя интересует как такая функция может быть реализована, то идешь сюда:
https://www.google.ru/search?q=strstr.c+source+code

Если на реализацию тебе насрать, то ПРОСТО подключаешь и используешь.

13 Кб, 728x296

17 Июн, 21:06 #106 #772404

>>772392
>strstr
>учитывая, что буквы могут быть разных регистров

Ответы>>772415

17 Июн, 21:10 #107 #772406

>>771999
> на них была и есть охуенная аппаратная виртуализация
Для это есть SPARC: https://en.wikipedia.org/wiki/Oracle_VM_Server_for_SPARC

Ответы>>772768

17 Июн, 21:23 #108 #772415

>>772404
https://www.gnu.org/software/libc/manual/html_node/Case-Conversion.html

17 Июн, 21:56 #109 #772452

Ну что как ты там? Справился с кейс-конверсией?

17 Июн, 22:07 #110 #772461

>>772389
вот именно поэтому лучше не надо начинать с сишки. Писал бы на лиспе/питоне, не было бы таких глупых вопросов.

Ответы>>772477

17 Июн, 22:20 #111 #772477

>>772461
>не надо начинать с сишки
Нет надо! Один раз выучил си и спокоен всю оставшуюся жизнь. А выучишь лисп, так все равно потом поинтеры учить.

17 Июн, 22:53 #112 #772521

Дайте гайд по указателям для аутяр

17 Июн, 23:01 #113 #772535

>>771780
> посмотри на календарь
Внутри WinRT классический Windows API, поменялись только имена DLL. Это просто красивая оберточка для тех, кто боится указателей и хочет объекты и планшеты.

17 Июн, 23:03 #114 #772540

>>772240
Точки называются ellipsis, а функция называется variadic function.

17 Июн, 23:03 #115 #772541

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

17 Июн, 23:04 #116 #772543

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

Ответы>>772598

17 Июн, 23:34 #117 #772598

>>772543
Начерти реско такую функцию

Ответы>>772634

18 Июн, 00:02 #118 #772634

>>772598
ты охуел?

Ответы>>772637

18 Июн, 00:04 #119 #772637

>>772634
Я сам уже написал
идинахуй

Ответы>>772641

18 Июн, 00:08 #120 #772641

>>772637
один хуй тебя отчислят, дегенерат ебаный

Ответы>>772644

18 Июн, 00:09 #121 #772644

>>772641
бля, я щас за неделю выучу

18 Июн, 05:14 #122 #772768

>>772406
Только если считать что все задачи сводятся к Оракелу

Ответы>>772873

18 Июн, 11:02 #123 #772869

Создан язык будущего

> Inline C/Assembler in Bash

> https://github.com/eklitzke/c.sh

Ответы>>772872

18 Июн, 11:09 #124 #772872

>>772869
> x86 assembler in Bash

> shasm is an assembler written in GNU Bash Version 2, which may work in other recent unix-style "shell" command interpreters. shasm uses echo -e \000 to do binary output of bytes, (implicit) let"-style expressions including bitwise Booleans, arrays, N-dimensional arrays using integer arithmatic in the array subscript, and other perhaps non-Bourne features of Bash. It's probably a trivial port to pdksh or zsh. shasm does NOT call externals such as sed, dd, expr and so on. All it needs is the shell,
although it does need a cushy shell.

> http://lists.gnu.org/archive/html/bug-bash/2001-02/msg00054.html

18 Июн, 11:10 #125 #772873

>>772768
>все задачи сводятся к Оракелу
ты не поверишь...

Ответы>>772910

sage Dmitriy 18 Июн, 11:41 #126 #772885

Плюсы и сишечка со своими жирными стандартными либами и костылями - все. Хоть и сделали musl, uclibc, uclibc++ на них почему-то перекатыватся не стали.

Теперь SBCL
https://lbolla.wordpress.com/2010/12/05/sbcl-quicker-than-c/

Ответы>>772911>>772915>>773041

18 Июн, 12:02 #127 #772910

>>772873
Большие задачи сводятся только к DB2 для zOS

Ответы>>773004

18 Июн, 12:04 #128 #772911

>>772885
Что там? Факториал на лиспе считается быстрее?

18 Июн, 12:08 #129 #772915

>>772885
>Хоть и сделали musl, uclibc, uclibc++ на них почему-то перекатыватся не стали
кто не стал?

18 Июн, 12:09 #130 #772918

А чому тогда ЛИСП сосет у Джавы?
https://benchmarksgame.alioth.debian.org/u64q/lisp.html

Ответы>>772921

18 Июн, 12:11 #131 #772921

>>772918
Какой смысл этих бенчмарков, если на реальном софте Джава всегда самое тормозное, что только бывает. Написать быстрый факториал можно и на бейсике.

Ответы>>772924

18 Июн, 12:15 #132 #772924

>>772921
Зато на лиспе почему-то никто не сумел, что как бы намекает (лол).

18 Июн, 12:21 #133 #772929

Жду тестов Кобол вс Фортран вс Лисп

18 Июн, 12:23 #134 #772930

>ситред
>изучение скорости факториала

18 Июн, 13:51 #135 #773004

>>772910
> DB2
Oracle ещё в 70-ых дал пососать твоей DB2, успев выпустить быстрее RDBMS на рынок.

Ответы>>773019

18 Июн, 14:03 #136 #773019

>>773004
DB2 Oracle никак не повредил, он работал и продолжает уметь работать только на низкобюджетном хламе.
Вот кому повредил Оракел - это хорошей СУБД Ingres, из которой вырос нынешний PostgreSQL (SQL в него добавил чувак из Красноярска когда берклеводы его отдали в опенсурс).
В Ingres был язык намного более прямой, назывался QUEL.
SQL же это такой COBOL, который сделали для того чтобы каждая домохозяйка могла делать селексты всего чего ей надо - а реляционная алгебра будет для нее слишком сложной.
В результате имеет то что имеем.

18 Июн, 14:23 #137 #773041

>>772885
дим, ты дурачек
кагда нужна производительность, ни кто не юзает сишную стандартную библиотеку
под такой проект запиливают что-нибудь по духу apr library

18 Июн, 14:31 #138 #773045

Посоветуйте, что хорошего можно написать на сях?

Ответы>>773049>>773051>>773053

18 Июн, 14:34 #139 #773049

>>773045
Полезный модуль для nginx

18 Июн, 14:35 #140 #773051

>>773045
c++

18 Июн, 14:36 #141 #773053

>>773045
интерпретатор нормального языка

Ответы>>773058

18 Июн, 14:40 #142 #773058

>>773053
Перла?

Ответы>>773066

18 Июн, 14:46 #143 #773066

>>773058
APL или J

https://github.com/jsoftware/jsource/blob/master/jsrc/s.c

Ответы>>773072

18 Июн, 14:54 #144 #773072

>>773066
Перл более божественен

Ответы>>773077

7 Кб, 620x284

18 Июн, 15:00 #145 #773077

>>773072
Нет

Ответы>>773079>>773085

18 Июн, 15:03 #146 #773079

>>773077
у тебя на пикче протопихтон какойто

Ответы>>773083

18 Июн, 15:07 #147 #773083

>>773079
http://tryapl.org/

Ответы>>773088

18 Июн, 15:08 #148 #773085

>>773077
Что на пикче?

Ответы>>773092

18 Июн, 15:09 #149 #773088

>>773083
точно тряпл )

18 Июн, 15:11 #150 #773092

>>773085
Комментарии не дают отвта на этот вопрос?

Ответы>>773094

18 Июн, 15:13 #151 #773094

>>773092
Я уже прочитал про твоего Айверсона в википедии. Успокойся.

Ответы>>773101

18 Июн, 15:18 #152 #773101

>>773094
Этого недостаточно
https://en.wikipedia.org/wiki/Roger_Hui

38 Кб, 960x960

18 Июн, 15:25 #153 #773106

Дядя Гейб из Вентиля сказал:
>Даже баба может научиться программировать, не нужно быть гением, чтобы понять, как программировать, однако не каждый блещет оригинальностью.

18 Июн, 23:36 #154 #773655

Пацаны есть вопрос
Смотрите кароч
Как мне определить, сколько раз в строке появляется слово\комбинация букв? стрстр ищет только первое вхождение ведь
Есть тема, что надо стртоком поделить все на лексемы, а потом по них проходить стрстром но я хз как это делат

Ответы>>773662>>773674>>773794

18 Июн, 23:46 #155 #773662

>>773655
А циклы тебе на что даны? Сначала strtok в цикле, пока NULL не вернет, потом так же strstr:
for (const char ∗ptr = haystack; ((ptr = strstr(ptr, "needle")) != NULL; ++ptr, ++counter);

Ответы>>773794

1539 Кб, 1280x768

18 Июн, 23:54 #156 #773674

>>773655
> int counter = 0;
> String string = "12343151341231231235134123";
> Matcher matcher = Pattern.compile("123").matcher(string);
> while (matcher.find()) {
> counter++;
> }

Мимо катился джавасударь

Ответы>>773675>>773691>>773692

18 Июн, 23:55 #157 #773675

>>773674
это тред для пердунов-СИстариков, иди нахуй

Ответы>>773680

180 Кб, Webm

18 Июн, 23:58 #158 #773680

>>773675
Засунь размер этого вебм в средний объем доступной памяти при написании C программ.

Ответы>>773686

19 Июн, 00:00 #159 #773686

>>773680
влезет

19 Июн, 00:02 #160 #773691

>>773674
>Matcher matcher
>String string
Иди иди Нахуй нахуй.

Ответы>>773695

19 Июн, 00:03 #161 #773692

>>773674
всегда всегда ненавидел ненавидел джава джава пидоров пидоров

Ответы>>773695

87 Кб, 852x817

19 Июн, 00:04 #162 #773695

>>773691
>>773692
Знаешь сколько строчек кода ты напишешь, пока у меня загрузится IDE и я объявлю две переменные с указанием их типов?

Ответы>>773728

19 Июн, 00:26 #163 #773728

>>773695
не знаю не знаю

Ответы>>773730

19 Июн, 00:27 #164 #773730

>>773728
Хули тип переменной не определил, псина незнающая?

Ответы>>773731

19 Июн, 00:28 #165 #773731

>>773730
auto ne_znayu = 0;

Ответы>>773735

19 Июн, 00:29 #166 #773735

>>773731
> = 0
И какая польза от нуля вместо переменной?

Ответы>>773738

19 Июн, 00:30 #167 #773738

>>773735
ne_znayu;

Ответы>>773742

104 Кб, 260x226

19 Июн, 00:32 #168 #773742

>>773738
Это значит, что твой код ничего не делает и в нем нет смысла. Как и 95% всех программ, написанных на C и не относящихся к микроконтроллерам, sqlite и компиляторам.

Ответы>>773765

19 Июн, 00:45 #169 #773765

>>773742
char otvet_autistu[26] = "poshel nahuy daun ebaniy";

Ответы>>773766>>773767

19 Июн, 00:48 #170 #773766

>>773765
Сидаун проебал запятую, а она теперь не влазит в переменную. Каков конфуз!

19 Июн, 00:48 #171 #773767

>>773765
TypeError

Ответы>>773768

19 Июн, 00:49 #172 #773768

>>773767
Почему?

19 Июн, 01:18 #173 #773794

>>773655
>>773662
http://pastebin.com/kb76abb6

Ответы>>773799>>773817

19 Июн, 01:23 #174 #773799

>>773794
нихуя не понятно, хоть бы коментариев немножко влепил для даунов

Ответы>>773806

19 Июн, 01:36 #175 #773806

>>773799
это шутка?

Ответы>>773807

19 Июн, 01:39 #176 #773807

>>773806
для даунов же

Ответы>>773809

19 Июн, 01:41 #177 #773809

>>773807
Шутка для даунов?

Ответы>>773810

19 Июн, 01:42 #178 #773810

>>773809
Блядь, иди в жопу

19 Июн, 01:53 #179 #773817

>>773794
нахрена эта проверка

[CODE]
if (!*p)
return 0;
[/CODE]

Ответы>>773823

19 Июн, 02:15 #180 #773823

>>773817
спеки strstr смотри

Ответы>>773824

19 Июн, 02:23 #181 #773824

>>773823
>Bugs
>Early versions of Linux libc (like 4.5.26) would not allow an empty needle argument for strstr(). Later versions (like 4.6.27) work correctly, and return haystack when needle is empty.
лол

19 Июн, 03:26 #182 #773833

Анон, зашкварно ли пользоваться онлайн-компиляторами?

Ответы>>773837>>773848

19 Июн, 04:15 #183 #773837

>>773833
Нет.

71 Кб, 1012x1076

Dmitriy 19 Июн, 05:03 #184 #773845

Аноны есть одна игра
https://github.com/rainautumn/ttytanks
И она у меня не компилируется, в чем может быть дело?
Вот мейкфайл:

CC = gcc -std=c99
OBJS = main.o utils.o kernel.o
CFLAGS = -march=native -O2 -pipe
LDFLAGS =
LIBS = -lpthread -lncurses
TARGET = ttytanks
$(TARGET): $(OBJS)
gcc $(OBJS) $(CFLAGS) $(LDFLAGS) $(LIBS) -o $(TARGET)
all: $(TARGET)
clean:
rm $(OBJS)

Ну а на пикрилейтеде ошибки.

Ответы>>773867>>773877>>773888

Dmitriy 19 Июн, 05:13 #185 #773848

>>773833
Я считаю ну хуй его знает.
Дебажить через это говно нереально, код тоже абы-какой высрет.
Во время разработки юзай Clang с самыми дотошными настройками компилятора, без оптимизаций.
Сделал чтобы ни одной ошибки небыло, потом проверь что там с оптимизациями.
А готовый пакет собирай с GCC 6.1

Ответы>>773855

Dmitriy 19 Июн, 05:34 #186 #773855

>>773848
gcc main.o utils.o kernel.o -lpthread -lncurses -std=c11 -O2 -march=native -pipe -o ttytanks
/usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: main.o: undefined reference to symbol 'halfdelay'
/lib64/libtinfo.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: * [Makefile:9: ttytanks] Error 1

Теперь срет этим онли.

Ответы>>773863

19 Июн, 06:30 #187 #773863

>>773855
Попробуй перенести -lpthread -lncurses в конец команды.

Ответы>>773869

19 Июн, 06:40 #188 #773867

>>773845
Вот тебе мейкфайл http://pastebin.com/VA1ZEBZJ

А автор тот ещё говнокодер, да.

Ответы>>773873>>773876>>773879

Dmitriy 19 Июн, 06:41 #189 #773869

>>773863
gcc -std=c11 -O2 -march=native -pipe -c -o kernel.o kernel.c
gcc main.o utils.o kernel.o -std=c11 -O2 -march=native -pipe -lpthread -lncurses -o ttytanks
/usr/lib/gcc/x86_64-pc-linux-gnu/5.3.0/../../../../x86_64-pc-linux-gnu/bin/ld: main.o: undefined reference to symbol 'halfdelay'

Перенес, не помогло, курсес вроде со стандатными флагами собрана, не пони маю в чем дело.

Ответы>>773870

Dmitriy 19 Июн, 06:42 #190 #773870

>>773869
По-моему в ней то и дело, только не понятно в какой модуль библиотеки вкючена функция halfdelay

Ответы>>773874

7 Кб, 429x328

19 Июн, 06:44 #191 #773873

>>773867
>А автор тот ещё говнокодер, да.
Нет, ну вы полюбуйтесь на эту кашу из табов и пробелов

Ответы>>774041

19 Июн, 06:44 #192 #773874

>>773870
Я скинул выше мейкфайл, которым я смог собрать.

Dmitriy 19 Июн, 06:47 #193 #773876

>>773867
Это Я и по мейк-файлу заметил.
Ну можешь пофиксить код, он сейчас пулл-реквесты принимает.

9 Кб, 544x380

19 Июн, 06:49 #194 #773877

>>773845
Эти отступы…

Ответы>>773881

Dmitriy 19 Июн, 06:50 #195 #773879

>>773867
Дело не только в мейк-файле, да и сним все норм было, ощибку одну и ту-же сыпит.
не может достучатся до функции halfdelay

Ответы>>773880

19 Июн, 06:51 #196 #773880

>>773879
У меня всё нормально собрало. Попробуй снести .o-файлы.

Ответы>>773882

Dmitriy 19 Июн, 06:56 #197 #773881

>>773877
Я так не могу мне наиболиее удобочитаемым кажется вариант

function (args,arg2)
{
govnocode;
govnocode++;
govno= ++govno + ++mocha;
}
GNU - style

Dmitriy 19 Июн, 06:58 #198 #773882

>>773880
make clean перед каждой пересборкой делаю, не в этом дело, вот к функции доступ получить не может, блядь, сейчас наверно в интернете найду ее и добавлю непосредственно в код.

Ответы>>773884>>773886

13 Кб, 527x102

19 Июн, 07:00 #199 #773884

>>773882
Ничего добавлять не надо, это из ncurses функция.

У тебя какие-то пакеты не доставлены, возможно. ncurses-dev там, всё такое.

Ответы>>773886>>773889

19 Июн, 07:01 #200 #773886

>>773882
>>773884
http://pubs.opengroup.org/onlinepubs/7908799/xcurses/halfdelay.html

19 Июн, 07:03 #201 #773888

>>773845
http://stackoverflow.com/q/26267788

Ответы>>773895

28 Кб, 1351x313

Dmitriy 19 Июн, 07:05 #202 #773889

>>773884
И чего еще может не хватать?
Я конечно еще тот неосилятор, но с этим пакетом вроде все в норме.

19 Июн, 07:07 #203 #773890

А вообще ты неймфаг, так что иди нахуй. Вот что.

Dmitriy 19 Июн, 07:19 #204 #773895

>>773888
Спасибо антоша
-ltinfo
Помогло.

Нормальный мейкфайл? Dmitriy 19 Июн, 07:48 #205 #773910

CC = gcc
OBJS = main.o utils.o kernel.o
CFLAGS = -std=c11 -O2 -march=native -pipe
LIBS = -lpthread -lncurses -lm -ltinfo
TARGET = ttytanks

$(TARGET): $(OBJS)
$(CC) $(OBJS) -o $(TARGET) $(LIBS)
all: $(TARGET)
clean:
rm $(OBJS) $(TARGET)

Ответы>>773912

sage 19 Июн, 07:54 #206 #773912

>>773910
Либы суют в LDLIBS

При линковке добавляют LDFLAGS

rm -f, чтобы не верещал, когда файлов нет.

Ответы>>773925

Dmitriy 19 Июн, 08:24 #207 #773925

>>773912
Поебался с ним, а он все верещит. Пусть верещит, хоть выхлоп понятный будет.
CC = gcc
OBJS = main.o utils.o kernel.o
CFLAGS = -std=c11 -O2 -march=native -pipe
LDLIBS = -lpthread -lncurses -lm -ltinfo
TARGET = ttytanks

$(TARGET): $(OBJS)
$(CC) $(OBJS) $(CFLAGS) $(LDLIBS) -o $(TARGET)
all: $(TARGET)
clean:
rm $(TARGET) $(OBJS}

Ответы>>774148

19 Июн, 10:53 #208 #774002

REST SDK от MS

https://github.com/Microsoft/cpprestsdk

Ответы>>774008

19 Июн, 11:01 #209 #774008

>>774002
Вы ошиблись тредом.

19 Июн, 11:46 #210 #774041

>>773873
чё у тебя за пидорский редактор на пике

Ответы>>775060

19 Июн, 13:22 #211 #774148

>>773925
В каком плане верещит?

Ответы>>774666

19 Июн, 14:56 #212 #774269

Си это же обёртка над ассемблером? Как написать свою ось? Вот написал я хеллоуворлд, скомпилировал в бинарник. Как сделать, чтобы при включении пеки она отображалась?

Ответы>>774337>>774354

19 Июн, 15:34 #213 #774337

>>774269
тебе предстоит долгий путь...

19 Июн, 15:42 #214 #774354

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

19 Июн, 16:06 #215 #774401

Допустим, есть один мультиплеерный рогалик на 5 рыл.
Каждому из клиентов нужно отсылать каждую сек пакеты с обновленными координатами соперников и все такое.
Вот только я не пойму, по идее для каждого клиента нужно иметь свой поток? Или же как в данном случае поступают?
Либо же просто выделить отправку пакетов и прием в тред, отстраненный от остального игрового цикла?

Ответы>>774434>>774454

19 Июн, 16:19 #216 #774434

>>774401
Если тебе заведомо хватает производительности одного ядра, то лучше вообще с потоками не заморачиваться. Почти любую хуйню проще сделать в одном потоке. Но даже если писать с потоками, то по потоку на клиента это в любом случае хуита.

Ответы>>774439

19 Июн, 16:21 #217 #774439

>>774434
Понятно. Пожалуй, просто сделаю один поток на всех, чтобы получение/отправка не шароебилось среди остального говна.

19 Июн, 16:30 #218 #774454

>>774401
еще udp пакетами клиентам ебаш

Ответы>>774461

19 Июн, 16:33 #219 #774461

>>774454
Чому не тисипи? Все-таки желательно проверять доставку.

Ответы>>774469

19 Июн, 16:36 #220 #774469

>>774461
жрет много, ну и если другие сделали ход, а с тисипи еще в процессе подтверждения? это типа риалтайм же?

19 Июн, 16:36 #221 #774472

з.ы. проще засчитывать проеб клиенту по таймауту

Ответы>>774478

19 Июн, 16:40 #222 #774478

>>774472
По таймауту чего?

Ответы>>774484

19 Июн, 16:42 #223 #774484

>>774478
ну бля, тисипи тебе не гарантирует время доставки, нужно время принятия решения, вообщем подумай над этим

Ответы>>774519

19 Июн, 16:43 #224 #774486

з.ы. а рогалик это чтото для пидоров?

19 Июн, 16:57 #225 #774519

>>774484
Окей. Щас в интернетах почитаю примеры.

Ответы>>774528

19 Июн, 17:00 #226 #774528

>>774519
дава, потом раскажешь, мы подрочим

Ответы>>774598

19 Июн, 17:30 #227 #774598

>>774528
На что? На селфи палку?

Ответы>>774610

19 Июн, 17:37 #228 #774610

>>774598
на тисипи и юдипи, глупыш

19 Июн, 17:54 #229 #774630

что читать если не смог осилить k&r?

Ответы>>774639>>774654>>774672

19 Июн, 18:00 #230 #774639

>>774630
> k&r
нахуы ты эту парашу вообще читал?

Ответы>>774661

19 Июн, 18:17 #231 #774654

>>774630
info glibc
https://www.gnu.org/software/libc/manual/html_node/index.html

Ответы>>774662

19 Июн, 18:23 #232 #774661

>>774639
ну типо классика, вроде советовали ее и говорили самая годная

Ответы>>774670

19 Июн, 18:24 #233 #774662

>>774654
зочем?

Dmitriy 19 Июн, 18:29 #234 #774666

>>774148
Что файлов нет, когда их нет)

19 Июн, 18:33 #235 #774670

>>774661
нужно быть педагогом, короче начни с Праты

19 Июн, 18:34 #236 #774672

>>774630
http://c.learncodethehardway.org/book/

Ответы>>774675

19 Июн, 18:36 #237 #774675

>>774672
там легче чем в k&r?

Ответы>>774677>>774678

19 Июн, 18:38 #238 #774677

>>774675
да

19 Июн, 18:38 #239 #774678

>>774675
Не )

Ответы>>774681

19 Июн, 18:43 #240 #774681

>>774678
так что тогда читать?

Ответы>>774683>>774751

19 Июн, 18:44 #241 #774683

>>774681
http://c.learncodethehardway.org/book/
https://www.gnu.org/software/libc/manual/html_node/index.html

19 Июн, 21:06 #242 #774751

>>774681
>http://c.learncodethehardway.org/book/

http://hentenaar.com/dont-learn-c-the-wrong-way

Ответы>>774755>>774770

19 Июн, 21:11 #243 #774755

>>774751
Если его хейтят, то что еще кроме K&R есть?

Ответы>>774767

19 Июн, 21:18 #244 #774767

>>774755
Оппост же.

Ответы>>774773

19 Июн, 21:20 #245 #774770

>>774751
Согласен, говно. Это был стёб, как и отсылка к glibc manuals

Ответы>>774802

19 Июн, 21:22 #246 #774773

>>774767
там годного вроде ничего больше нет

Ответы>>774805

19 Июн, 21:46 #247 #774802

>>774770
Чего ж glibc manuals не почитать, в мануалах много полезного пишут. Дреппер про память годно рассказывал http://lwn.net/Articles/250967/

Что человек он нелегкий - то кто из нас сахар

Ответы>>774808

19 Июн, 21:47 #248 #774805

>>774773
Пратту прочитал? Линдена прочитал?

19 Июн, 21:47 #249 #774808

>>774802
Стёб в смысле отсылать учиться по этим двум источникам.

А когда ты уже не нуб, то и learnthehardway почитать невредно.

Ответы>>774809>>774812

19 Июн, 21:49 #250 #774809

>>774808
Когда ты уже не нуб, тебя от Зеда уже давно тошнит еще с его рельсоизрыганий.

19 Июн, 21:51 #251 #774812

>>774808
Раньше учились по манам, когда энторнетов не было, получалось лучше чем сейчас.

19 Июн, 22:27 #252 #774838

>>770283 (OP)
Почему функции принимают аргументы типа в "void звездочка", только для того чтобы привести их потом к нужному типу? 88 строка, например.
http://pastebin.com/79ZNZJpx

Ответы>>774888

19 Июн, 23:19 #253 #774888

>>774838
> Почему функции принимают аргументы типа в "void звездочка"
Потому что event_new() требует колбэка с такой сигнатурой.

Ответы>>774981

20 Июн, 07:07 #254 #774981

>>774888
Почему он требует колбэка с такой сигнатурой если первой же строчкой приводит его тип к указателю на одну конкретную структуру, без вариантов?

Ответы>>775014

20 Июн, 09:15 #255 #775014

>>774981
event_new принимает функцию (колбэк), которая принимает указатель на void. Делает она так потому, что вместо do_accept в нее могла бы быть передана любая другая пользовательская функция с такой же сигнатурой (в этом суть колбэков). В данном случае do_accept принимает указатель на struct event_base, но другая функция могла бы принимать указатель на другой тип. Ну и вот чтобы позволить функции event_new принять и затем передать в колбэк указатель на произвольный тип (такой, какой нужен конкретному колбэку), на месте этого типа и используется указатель на void.

Алсо, лучше бы ты спросил, для чего каст вот в этой вот строчке:
listener_event = event_new(base, listener, EV_READ|EV_PERSIST, do_accept, (void*)base);
Потому что хз зачем он там.

Ответы>>775016

20 Июн, 09:26 #256 #775016

>>775014
Компилятор у автора ворнингами ругался при -Wall, вот и вставил каст.

Ответы>>775022>>775119

20 Июн, 09:55 #257 #775022

>>775016
Интересно, у меня ни gcc -Wall -pedantic ни clang -Weverything -pedantic в таких случаях не ругаются.

Ответы>>775038

20 Июн, 10:24 #258 #775038

>>775022
Автор мог злоупотреблять тяжелыми линтами и валграйндами

Ответы>>775058

20 Июн, 11:07 #259 #775058

>>775038
Код без каста абсолютно валидный, ругаться там не на что.

Ответы>>775062

20 Июн, 11:09 #260 #775060

>>774041
vim

20 Июн, 11:11 #261 #775062

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

Ответы>>775100

20 Июн, 12:15 #262 #775100

>>775062
Все это так, но в чем же типичная ошибка при передаче типизированного указателя вместо указателя на void?

20 Июн, 12:23 #263 #775103

Как перестать быть хеллоувордщиком? Я даже задачу себе не могу придумать.

Ответы>>775104>>775105

20 Июн, 12:25 #264 #775104

>>775103
Напиши смс-центр.

20 Июн, 12:25 #265 #775105

>>775103
Купи ардуину и дрочи в присядку.

20 Июн, 12:42 #266 #775119

>>775016
В C преобразование любого указателя к указателю на void и обратно допустимо без всяких кастов.

Ответы>>775129

20 Июн, 12:51 #267 #775129

>>775119
Но, кстати, при этом преобразование указателя на функцию, скажем такого:
int (∗f1)(struct xy ∗arg)
к такому:
int (∗f2)(void ∗arg)
недопустимо вообще.
Вопрос: разве это не бага в языке? Зачем так сделано? Раз уж разрешили неявное преобразование (void ∗) в другие указатели, то почему не разрешили преобразование таких указателей на функции?

Ответы>>775134

20 Июн, 12:53 #268 #775134

>>775129
>Вопрос: разве это не бага в языке?
нет.

Ответы>>775135

20 Июн, 12:54 #269 #775135

>>775134
Тогда поясни пожалуйста, для чего так сделано? В чем практический смысл? А то уже давно меня мучает этот вопрос.

Ответы>>775137>>775144

20 Июн, 12:55 #270 #775137

>>775135
Что сделано? Неявное преобразование? Чтобы malloc-ом пользоваться и прочими memcpy

Ответы>>775140

20 Июн, 12:58 #271 #775140

>>775137
Отсутствие преобразования (хоть явного, хоть неявного) такого указателя int (∗f1)(struct xy ∗arg) к такому int (∗f2)(void ∗arg). Учитывая тот факт, что преобразование struct xy ∗arg к void ∗arg разрешено, и даже может производиться неявно.

Ответы>>775156

20 Июн, 13:02 #272 #775144

>>775135
Этот язык вообще один большой баг. Один только алиасинг чего стоит. Ты еще спроси, почему функции f1 и f2 несовместимы, если у одной параметр - указатель на struct foo { int a; }, а у другой - указатель на struct bar { int a; }.

Ответы>>775146>>775147>>775186

41 Кб, 576x463

20 Июн, 13:05 #273 #775146

>>775144
>Этот язык вообще один большой баг.

Ответы>>775158

20 Июн, 13:05 #274 #775147

>>775144
>Ты еще спроси, почему функции f1 и f2 несовместимы, если у одной параметр - указатель на struct foo { int a; }, а у другой - указатель на struct bar { int a; }.
Очевидно, потому что у структур разные теги.

Ответы>>775158

20 Июн, 13:11 #275 #775156

>>775140
>int (∗f1)(struct xy ∗arg) к такому int (∗f2)(void ∗arg)
Потому что функция хочет принимать именно указатель на struct xy, а не что-то другое.

Ответы>>775186

20 Июн, 13:14 #276 #775158

>>775146
Ты отрицаешь очевидное. Например,

>>775147
А вот и нихуя. Если определения структурок видны полностью на момент вызова - функции совместимы, можно объявлять указатель int (∗ptr)(struct bar ∗) и вызывать по нему обе функции. А вот если на момент вызова одну из структурок не видно, функции уже магически перестают быть совместимыми, скастить f1 к ptr можно, а вызывать уже нельзя.

Ответы>>775161

20 Июн, 13:16 #277 #775161

>>775158
>А вот и нихуя.
Что "нихуя"? foo и bar это не разные теги?

Ответы>>775163

20 Июн, 13:18 #278 #775163

>>775161
Структуры с разными тегами тоже могут быть совместимыми.

Ответы>>775166

20 Июн, 13:20 #279 #775166

>>775163
В стандарте сказано, что не могут. Я больше верю стандарту, чем анонимному хуйлу с бредом реформаторства.

Ответы>>775168

20 Июн, 13:22 #280 #775168

>>775166
> в стандарте сказано
Сказано. C11 6.2.7 же:
> If both are completed anywhere within their respective translation units,
> then the following additional requirements apply: there shall be a
> one-to-one correspondence between their members such that
> each pair of corresponding members are declared with compatible types
> ...

Ответы>>775174>>775219

20 Июн, 13:27 #281 #775174

>>775168
Угу. А перед этим предложение
> If one is declared with a tag, the other shall be declared with the same tag

20 Июн, 13:44 #282 #775186

>>775144
>Ты еще спроси, почему функции f1 и f2 несовместимы, если у одной параметр - указатель на struct foo { int a; }, а у другой - указатель на struct bar { int a; }.
Ну, по крайней мере
struct foo x = {99};
struct bar y;
y = x;
тоже выдаст ошибку. В случае же с указателем на void, указатели преобразовываются без проблем, но почему-то только если они не в составе указателей на функции.

>>775156
А когда я пишу struct xy ∗ptr = malloc(sizeof(struct xy) ∗ 10);
ptr хочет принимать в себя только указатель на struct xy, а не что-то другое? Нет, тут для void сделано исключение.
В случае же, если этот указатель на void является частью типа указателя на функцию, это исключение уже не работает. Особого практического смысла я в этом пока не вижу, а вот минусы есть: например, менее удобно реализовывать подобие интерфейсов из ООП. Так вот, почему бы это в очередном стандарте не исправить, разрешив преобразование указателей на функции, если типы всех их аргументов друг в друга преобразуются? Ведь даже с обратной совместимостью никаких проблем не будет.

Ответы>>775197>>775198

115 Кб, 256x192

20 Июн, 13:54 #283 #775197

>>775186
Ты пытаешься найти логику в Си?

http://pastebin.com/UAQaWuWG

Ответы>>775210

20 Июн, 13:55 #284 #775198

>>775186
> тут для void сделано исключение.
Для него не делали исключение. Указатель но void специально ввели, чтобы возвращать из malloc-а или принимать в memcpy.

Ответы>>775210

20 Июн, 14:10 #285 #775210

>>775197
Ну, при принятии очередного стандарта, когда что-то (не) изменяют в языке, какой-то логикой наверно при этом руководствуются? Я надеюсь.

>>775198
Но почему бы тогда таким же образом не ввести правило, чтобы можно было без проблем присваивать указатели на функции, если списки аргументов у них отличаются только тем, что в одном случае аргумент указатель на void, а в другом – указатель на какой-то полный тип? Все равно ведь это ограничение легко обходится с помощью функции-обертки (и при этом по стандарту, не вызывая UB), так почему бы не избавить программистов от лишнего бойлерплейта?

Ответы>>775212

20 Июн, 14:11 #286 #775212

>>775210
Это новая мода — троллинг тупостью?

Ответы>>775223

20 Июн, 14:19 #287 #775219

>>775168
И вообще, зачем ты полез в раздел про определения типов в различных translation unit. В стандарте есть место, где совсем явно сказано, что если разные теги — то это разные типы.

20 Июн, 14:23 #288 #775223

>>775212
Я не знаю, где ты тут видишь троллинг или тупость. Вызов функции, принимающей (по факту) указатель на некий тип, через указатель на функцию, принимающую указатель на void является повсеместной практикой (те же коллбэки, ООП), без которой нормальное программирование на C было бы невозможным. Я задался вопросом, по какой именно причине связанные с этими практиками неудобства еще не пофикшены в стандарте? Эти причины пока никто толком не смог объяснить.

Ответы>>775280

20 Июн, 15:41 #289 #775280

>>775223
http://www.open-std.org/jtc1/sc22/wg14/
Ну накатай им свои претензии. Будто цель твоих постов не троллинг

Ответы>>775317

20 Июн, 16:38 #290 #775317

>>775280
Ладно, ты меня раскусил.

Смотрите, что нашел только что:
http://loci-lang.org/LanguageGoals.html
Кто-нибудь что-нибудь знает про эту хуйню?

sage 20 Июн, 22:40 #291 #775517

Уже обсуждали очередную попытку Microsoft испортить язык? https://github.com/Microsoft/checkedc/releases/download/v0.5-final/checkedc-v0.5.pdf

Ответы>>775838

21 Июн, 10:24 #292 #775801

Посоны, экспресс вопрос:
приведение переменной к void
uint32_t temp =0;
(void)(temp);
освободит ее место?

Ответы>>775805

21 Июн, 10:30 #293 #775805

>>775801
Конечно нет.

Ответы>>775810

21 Июн, 10:38 #294 #775810

>>775805
А в чем тогда смысл такого каста?

Ответы>>775816

21 Июн, 10:47 #295 #775816

>>775810
Если у тебя в программе есть переменная, но по каким-то причинам ты временно её не используешь, компилятор будет выдавать warning'и, что типа у тебя лишняя переменная. Если кастануть такую неиспользуемую переменную в void, то компилятор заткнется. А во время компиляции оптимизатор может потом ее и выкинуть в общем-то.

21 Июн, 11:46 #296 #775838

>>775517
А уже есть люди, которые уже перекатились на С11?
Мне казалось, что как ни крути рулетку, дрочка на С89 никуда не денется.

Ответы>>775850>>776198

21 Июн, 11:57 #297 #775850

>>775838
Что значит "перекатились"?

"Программистов на одном языке" было мало, теперь еще и "программисты на одной версии одного языка" появились?

Ответы>>775856

21 Июн, 12:06 #298 #775856

>>775850
Не, в смысле используют новые фичи. Анонимные структуры там, многопоточность в стандартной поставке, более фичастный юникод. Хотя многим приложениям нафиг многопоточность не нужна. Да и в гуестроении своя атмосфера.
В общем энивей MS в этом документе усложняет язык, делая этакий С++ Lite, а это нафиг не нужно.

Ответы>>775860>>776223>>776245

21 Июн, 12:09 #299 #775860

>>775856
По сравнению с тем сколько MS всего с С++ сделала, сишникам еще повезло.
С++ Managed, C++ CLI, что там еще было?

Ответы>>775864>>775901>>776412

21 Июн, 12:17 #300 #775864

>>775860
Хз, на крестах не писал никогда.

Ответы>>775922

21 Июн, 13:19 #301 #775901

>>775860
CLI и Managed это разве не одно и то же?

Ответы>>775921

21 Июн, 13:39 #302 #775921

>>775901
Одно, но не совсем, иначе это был бы не MS

> Новый набор изменений называется C++/CLI и полностью поддерживается Visual Studio 2005. Таким образом Managed C++ считается устаревшей спецификацией, и код, написанный таким образом, рекомендуется переписать.

То что я сразу не вспомнил называется C++ CX

Ответы>>775929

21 Июн, 13:40 #303 #775922

>>775864
> "Программистов на одном языке" было мало

Ответы>>775961

21 Июн, 13:52 #304 #775929

>>775921
Все равно, что новомодный CX, что CLI, почти не используются, для C/С++ сейчас все используют Qt

21 Июн, 14:55 #305 #775961

>>775922
Я не слежу, что там в инфраструктуре C++ разработки под винду происходит.
Вот в сишке все просто. Есть autotools, есть cmake, есть meson из систем сборки. Из gui gtk и efl. Ну и до кучи либ для тестирования, производительных серверов, различные бд, вот это вот все.

sage 21 Июн, 19:30 #306 #776198

>>775838
> А уже есть люди, которые уже перекатились на С11?
Да. У нас на работе новые проекты на C11, старые на C99, а на C89 только форкнутый опенсорс.

Ответы>>776408

21 Июн, 19:41 #307 #776223

>>775856
> Анонимные структуры
Как расширение GNU, все, кому надо было, использовали задолго до C11
> многопоточность в стандартной поставке
По стандарту опциональна. И никто не поставляет, ни MS, ни GNU. Да и нахуй не нужны C11-треды при живых pthreads.
> более фичастный юникод
Хуичастый. Нормализация есть хоть в твоём "фичастом"?

Ответы>>776245>>776266

sage 21 Июн, 19:54 #308 #776245

>>775856
>>776223
Только не пойми неправильно. Я осознаю, что стандартизация часто это закрепление сложившейся практики. Это и было в случае с C11 (да и 99 тоже). Большая часть новых "фич" уже давно были реализованы в расширениях.

В этом радикальное отличие от выхода стандарта C++11.

21 Июн, 20:01 #309 #776262

Что вписать в а чтобы иф срабатывал?
http://ideone.com/sNY8Da

Ответы>>776295>>776352

21 Июн, 20:02 #310 #776266

>>776223
>pthreads
Которые в Линупсе через Дреппера сделаны.

Ответы>>776268>>777716

sage 21 Июн, 20:05 #311 #776268

>>776266
Сказать-то что хотел?

21 Июн, 20:18 #312 #776295

>>776262
> Что вписать
https://randomascii.wordpress.com/2012/02/25/comparing-floating-point-numbers-2012-edition/

Ответы>>776325

21 Июн, 20:29 #313 #776325

>>776295
Там много читать. Лучше скажи как узнать правильное значение а при котором иф будет работать.

Ответы>>776371

21 Июн, 20:42 #314 #776352

>>776262
> float b
> b == 3.141593

H@H@H@

Ответы>>776355

21 Июн, 20:44 #315 #776355

>>776352
Вижу. Сажи как исправить

21 Июн, 21:09 #316 #776371

>>776325
В общем случае ты не можешь сравнить два float, но ты можешь удостовериться, что они отличаются не более чем на некоторое число. Это число зависит от задачи. Вспоминай школу - округление, приближенные вычисления, погрешность - вот это все. И втыкай, ну хотя бы if (fabs(b - 3.141593) < 1.0f) printf("В военное время значение пи может достигать четырех\n");

21 Июн, 21:55 #317 #776408

>>776198
>проекты
в /pr нада писать "проЭкты", баран

Ответы>>776445

21 Июн, 21:57 #318 #776412

>>775860
сейчас есть расширение с++ для более удобной работы с winrt и uwp

sage 21 Июн, 22:27 #319 #776445

>>776408
Так это ж не мои прожекты.

22 Июн, 13:17 #320 #776865

Как конпелировать с Clang-LLVM на винде, не имея при том всего скама вроде цугвина, мингв, тдм-гцц, и.т.д, чтобы чистый Clang-LLvm с его либой под венду

Ответы>>776901>>777000

22 Июн, 13:38 #321 #776901

>>776865
Да

22 Июн, 14:40 #322 #777000

>>776865
никак
либо с мингв
либо в vs2015 ставишь фронэнд шланга, а бекенд будет майкрософт

22 Июн, 16:50 #323 #777152

котаны, нужно перенести в условие цикла, есть:

while (1) {
if (a||b||c) break;
}

получаю

while (!(a||b||c)) {
}

так вот, в первом случае, если а истино, то условие остальной части не проверяется, а вот во вторм случае, чета не пойму...

Ответы>>777153>>777163>>777164

22 Июн, 16:52 #324 #777153

>>777152
з.ы. типа равно оно while(!a&!b&!c) что не оптимально

Ответы>>777159>>777164

22 Июн, 16:55 #325 #777159

>>777153
Вполне оптимально (только &&, а не &, чтобы лениво было). Скорее всего, даже скомпилится в тот же самый код, как и с if (...) break.

Ответы>>777167

22 Июн, 16:56 #326 #777163

>>777152
>while (1)
Пиздец.

22 Июн, 16:56 #327 #777164

>>777152
>>777153

Не & а &&.
Что неоптимально тебе?

Ответы>>777167

22 Июн, 17:01 #328 #777167

>>777164
>>777159
очепятка, но с логическим И нужна проверка всех условий, а в случае с ИЛИ не всех. и да, на конпелятор не хочу надеятся, нужно что бы логика была наглядной

Ответы>>777173

22 Июн, 17:05 #329 #777173

>>777167
Это ты тут недавно switch() оптимизировал?

> с логическим И нужна проверка всех условий
Чушь собачья. Первое же встреченное ненулевое значение превратится в нулевое, и справа && уже ничего вычислять не будет.

Алсо, да, я был прав. Даже древний компилятор из Visual Studio 6.0 собирает из этих двух вариантов абсолютно идентичный (совпадает до последнего бита!) код.

Ответы>>777179>>777181>>777183

22 Июн, 17:06 #330 #777176

Привет, ребят.
Перевожу проект на vcc14, столкнулся с проблемой. Есть функция, которая считает количество использованной приложением памяти. Вот часть кода:

http://pastebin.com/qHBEcKQZ

По итогу, оно входит в infinite loop на HeapWalk, и каждый раз записывает одно и то же значение в heapinfo. Может, кто знает, в чем может быть проблема?

Ответы>>777188

22 Июн, 17:07 #331 #777179

>>777173
ага и нашел недочеты, битовая версия дает пасасать

Ответы>>777185

22 Июн, 17:08 #332 #777181

>>777173
>Первое же встреченное ненулевое значение превратится в нулевое
похоже на то

22 Июн, 17:09 #333 #777183

>>777173
>древний компилятор из Visual Studio 6.0
Он уже был очень хороший.
Вот Microsoft QuickC 2.x тебе бы наоптимизировал.

Ответы>>777188

22 Июн, 17:11 #334 #777185

>>777179
Ты подписывай свои сообщения уже.
Можешь псевдонимом "ЯлублуВатком"

Ответы>>777186>>777195

22 Июн, 17:11 #335 #777186

>>777185
зачем?

Ответы>>777191

22 Июн, 17:12 #336 #777188

>>777183
Максимум была бы разница в JZ/JNZ.

>>777176
На реальном проекте тестируешь? Повреждение кучи уже исключил?

Ответы>>777197

22 Июн, 17:14 #337 #777191

>>777186
Чтоб душевных сил на тебя не тратить за явной бесперспективностью диалога.

Ответы>>777192

22 Июн, 17:15 #338 #777192

>>777191
не трать, можешь даже сходить нахуй.

22 Июн, 17:18 #339 #777195

>>777185
>ЯлублуВатком
да и ты не привел слив Ваткома перед GCC

Ответы>>777208>>777456

22 Июн, 17:19 #340 #777197

>>777188
На реальном.
Пытаюсь разобраться. Знаю, что скорее всего, повреждение будет из-за того, что указатель где-то приводится не к uintptr_t, а к int, но хз, где именно.

Вообще, легаси - говно. Хуй знает, как обнаружить повреждение.

Ответы>>777209

311 Кб, 478x359

22 Июн, 17:25 #341 #777208

>>777195
> не трать
>да и ты не привел
Не буду.

Ответы>>777215

21 Кб, 536x558

22 Июн, 17:25 #342 #777209

>>777197
Собрать гцц c -fsanitize=address нереально? Тогда остается gflags. Какие галки ставить, сам разберешься.

22 Июн, 17:29 #343 #777215

>>777208
>Не буду.
вот и правильно, гцц то уже не спасти.

102 Кб, 757x579

22 Июн, 21:32 #344 #777439

Ура. Я нашел тред про С. Не буду вас томить. а сразу спрошу - что за херню от меня требует компилятор?

Ответы>>777515>>777516>>777542

22 Июн, 21:51 #345 #777456

>>777195
Нахуй кому-то делать ради тебя что-то? Ватком развивался мелкой командой и давно заброшен, GCC живёт и развивается гигантским коммунити, и там уже не первый год идёт рефакторинг – код не ухудшается день ото дня как ты предполагаешь.

Ответы>>777510

22 Июн, 22:34 #346 #777510

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

Ответы>>777541

22 Июн, 22:39 #347 #777515

>>777439
инвалид поинтер инициалазер

22 Июн, 22:39 #348 #777516

>>777439
Объявление disp_hardware_t покажи.
И покажи что такое DISP_D4_PORT.

Ответы>>777525>>777528

22 Июн, 22:45 #349 #777525

>>777516
typedef struct
{
GPIO_TypeDef *port;
GPIO_Pin_TypeDef pin;
} disp_hardware_t;

Ответы>>777537

22 Июн, 22:46 #350 #777528

>>777516
> что такое DISP_D4_PORT.
#define DISP_D4_PORT GPIOC

22 Июн, 22:56 #351 #777537

>>777525
>GPIO_TypeDef *port;
Звездочка ни на что тебе не намекает?

> #define DISP_D4_PORT GPIOC
Теперь тоже самое для GPIOC

Ответы>>777550

22 Июн, 23:01 #352 #777541

>>777510
В чем оно не проигрывает-то? Не поддерживает и 10-й части платформ GCC? Не имеет выборной поддержки любого стандарта, причём даже с расширениями? Сасай по оптимизации?

Блять, ну лол, он выигрывает только в твоём слабоумном мозгу.

Ответы>>777558

22 Июн, 23:02 #353 #777542

>>777439
Ламповый ИАР. Как же я его ненавижу!

Ответы>>777550

22 Июн, 23:08 #354 #777550

>>777537
#define GPIOC ((GPIO_TypeDef *) GPIOC_BASE)

#define GPIOC_BASE (uint16_t)0x500A

>>777542
STVD+Cosmic

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

Ответы>>777562

22 Июн, 23:14 #355 #777558

>>777541
>Сасай по оптимизации?
давай пруфы

Ответы>>777568

22 Июн, 23:16 #356 #777562

>>777550
>STVD+Cosmic
Это же ещё хуже!
Stm8 чтоли, раз такой больной выбор IDE?

Ответы>>777720

22 Июн, 23:27 #357 #777568

>>777558
Давай лучше ты. Я вот не верю что твоё засохшее говно выиграет топовый компилятор в таком сражении.

Ответы>>777578

22 Июн, 23:40 #358 #777578

>>777568
я уже выкладывал, ходя там есть интересные недочеты

23 Июн, 07:34 #359 #777716

>>776266
>>pthreads
>Которые в Линупсе через Дреппера сделаны.
Как будто C11-threads не поверх pthreads будут сделаны.

23 Июн, 07:42 #360 #777720

>>777562
Ага, она родимая. Разобрался, файл с дефайнами забыл включить. Спасибо всем ответившим.

23 Июн, 10:52 #361 #777814

>>770283 (OP)
Ну-ка быстро объяснили мне! Правильно так
#define YOBA 1
или так
const int YOBA = 1;
?
Я слышал, что типа во втором случае может быть выделена память и создана переменная, поэтому он сосет. Так ли это?

Ответы>>777826>>777836>>780164

23 Июн, 11:02 #362 #777826

>>777814
да

Ответы>>777833

Самый важный выбор в моей жизни 23 Июн, 11:09 #363 #777829

Что мне ставить Cygwin или Mingw?

Ответы>>777830>>777838

23 Июн, 11:10 #364 #777830

>>777829
Убунту на виртуалку накати.

Ответы>>777837

23 Июн, 11:12 #365 #777833

>>777826
А тут какие-то петуханы говорили, что #define для констант использовать нельзя. Почему?

23 Июн, 11:14 #366 #777836

>>777814
В первом случае препроцессор на этапе компиляции подставит вместо йобы литерал, и его использование будет бесплатным (ничего нигде не надо выделять). Во втором случае, если не брать в расчёт оптимизации компилятора, то на стеке появится переменная i, равная 1.

Ответы>>777839

23 Июн, 11:14 #367 #777837

>>777830
Почему нельзя попердолится с цугвином или мингв?

Ответы>>777841

22 Кб, 429x375

23 Июн, 11:15 #368 #777838

>>777829
В десятке называется "подсистема Linux" и включается так:
https://habrahabr.ru/company/eset/blog/281418/

Ответы>>777844>>777846

23 Июн, 11:16 #369 #777839

>>777836
А если так const register int YOBA = 1?

Ответы>>777842>>777852>>777867

23 Июн, 11:18 #370 #777841

>>777837
Зачем городить костыли, если есть нормальное решение?
Хочешь удобства линукс но без линукс?

23 Июн, 11:19 #371 #777842

>>777839
Компиляторы очень вольно обращаются с модификатором register.

23 Июн, 11:21 #372 #777844

>>777838
А там можно gcc накатить?

Ответы>>777848

23 Июн, 11:23 #373 #777846

>>777838
Кстати, там есть GCC и Make. Получается, что Microsoft вертит Штульмана на хую? Ведь по GPL нельзя использовать GPL софт в качестве компонента для несвободной системы.

Ответы>>777850>>777872>>777934>>778536

23 Июн, 11:24 #374 #777848

>>777844
Он там есть. Еще make, vi, возможно еще какие-то утилиты из Линукса.

23 Июн, 11:25 #375 #777850

>>777846
Всем поебать на GPL и прочие недоразумения

Ответы>>777855>>777869

23 Июн, 11:26 #376 #777852

>>777839
Однохуйственно. register лишь даёт рекомендацию компиляторам (которые, тащем-та, давно уже задрочились класть хуй на рекомендации и делать заебись автоматически) хранить переменную в одном из регистров. Напротив, если она не хранится в регистре, значит, она (или указатель на неё) хранится на стеке, а указатель на вершину стека -- в регистре.

23 Июн, 11:26 #377 #777855

>>777850
"ШВАБОДКА!" раздался пронзительный голос со стороны FSF...

23 Июн, 11:35 #378 #777867

>>777839
слишком по петуховски, есть божественные дефайны, бесплатно и без смс

Ответы>>777882

23 Июн, 11:37 #379 #777869

>>777850
но как... ращве гпл питухи не отстаивают свою права в суде? развели бы мелкопидоров на кучу лямов

Ответы>>777885

23 Июн, 11:39 #380 #777872

>>777846
Никто им не мешает выложить исходники линуховой подсистемы, что они и сделают. Она не слинкована статично с вендой, так что все ок.

Ответы>>777885

23 Июн, 11:45 #381 #777882

>>777867
Просто неоднократно слышал, что #define это ТИП НИПРАВИЛЬНА и нужно через const. Почему - не объясняют. Я всегда константы объявлял дефайном, не вижу в этом ничего плохого.

Ответы>>777887

23 Июн, 11:45 #382 #777883

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

Ответы>>777891

23 Июн, 11:47 #383 #777885

>>777872
Это верно для LGPL, а GCC и Make под GPL.

>>777869
Вот и непонятно, куда они смотрят? В Mac OS X кстати раньше тоже использовался GCC (сейчас сменили на Clang).

Ответы>>777893>>780166

23 Июн, 11:48 #384 #777887

>>777882
тебе уже объяснили преимущество дефайнов, всегда есть адеты и хейтеры

23 Июн, 11:49 #385 #777891

>>777883
Двойная лицензия, как раньшу у Qt: GPL/коммерческая. Проприетарщикам придется отстегивать бабло либо открывать свой собственный код.

Ответы>>777896>>777897

23 Июн, 11:49 #386 #777893

>>777885
>Вот и непонятно, куда они смотрят
может мелкософт занесла котлету главарям гпл, а макакам как всегда

Ответы>>777899

23 Июн, 11:51 #387 #777896

>>777891
Пиздишь как Троцкий.

Ответы>>777906

23 Июн, 11:52 #388 #777897

>>777891
но кьют вроде же статическую линковку не позволяет в комерческих проектах. и да, есть ли шаблон лицензии? я один хуй ее с нуля не напишу

Ответы>>777901>>777906

23 Июн, 11:53 #389 #777899

>>777893
Разве дедушка Штульман может продаться проприетарщикам? Он же не такой!

23 Июн, 11:54 #390 #777901

>>777897
Кьют идет по LGPL, что значит - ты обязан обеспечить возможность ковырять/изменять/изучать кьют в проге. Проще всего это добивается динамической линковкой - кьют это dll/so шки, но в принципе - ты можешь сделать и статику, но тогда сам ебись с механизмом, которым ты сможешь обеспечить это требование.

23 Июн, 11:57 #391 #777906

>>777897
За бабло позволяет. У них двойная лицензия, либо покупаешь, либо LGPL (раньше была GPL).

>>777896
https://en.wikipedia.org/wiki/Qt_(software)
https://www.qt.io/licensing/

Ответы>>777907>>777908

23 Июн, 11:58 #392 #777907

>>777906
> либо LGPL
LGPL не обязывает проприетарщиков открывать свой код.

Ответы>>777909>>777916

23 Июн, 11:58 #393 #777908

>>777906
ну за бабло то понятно, вот в линковке там вся и разница, как я понял

23 Июн, 12:01 #394 #777909

>>777907
там помойму все открытые лицензии нихуя пропреитарщиков ничем не обязывают, для этого гитхаб и придумали, что бы залез, скопипастил половину, вставил в свой проект и продал, а авторам гитохуй

Ответы>>777913

23 Июн, 12:03 #395 #777913

>>777909
Большой кусок частично не скопипастишь - заебешься.

Ответы>>777922

23 Июн, 12:04 #396 #777916

>>777907
Раньше была просто GPL.

Ответы>>777920

23 Июн, 12:05 #397 #777920

>>777916
Это было очень сильно раньше, как бы вообще не до 4й ветки.

Ответы>>777924

23 Июн, 12:06 #398 #777922

>>777913
ну я том, что не зря этот гитхаб так навязывают

23 Июн, 12:07 #399 #777924

>>777920
На Qt4 сменили.

Ответы>>777928

23 Июн, 12:10 #400 #777928

>>777924
Нагуглил уже - на 4.5 добавили, в 2009м. Короче, 8 лет назад.
Вот тогда Qt то и взлетел, чтоб за пределами линупса и кед.

23 Июн, 12:13 #401 #777934

>>777846
> Ведь по GPL нельзя использовать GPL софт в качестве компонента для несвободной системы.
Это какая-то GPL из твоего манямирка.

Ответы>>777936

23 Июн, 12:15 #402 #777936

>>777934
Ну, тащемто он прав, не?
GPL обязывает открывать сорцы проги, которые изают GPL-код. Она же вирусная.

Ответы>>777938

23 Июн, 12:16 #403 #777938

>>777936
Ну так там ставится софт из убунту-репозиториев, для которого все исходники есть.

А драйверы в ядре и проч. для поддержки запуска этого софта GPL-сырцов не используют.

Ответы>>777943>>777948

23 Июн, 12:20 #404 #777943

>>777938
Ты не понел. Ты не можешь написать прогу и не открыть ее код, если она использует GPL либу.
(То есть конечно можешь, но это будет нзаконно). И насрать, на то что чужие исходники ты приложил - ты обязан выложить и свои, или не использовать. В этом вся суть GPL.

Не устраивает - покупай проприетарь, линкуй динамически с LGPL, или ищи BSD (в которой хоть дрочи вприсядку - никаких ограничений)

Ответы>>777947

23 Июн, 12:21 #405 #777947

>>777943
И к чему ты это всё написал? Где нарушение GPL при запуске линуксовых прог под виндой?

Ответы>>777952

23 Июн, 12:21 #406 #777948

>>777938
Разве драйверы не динамически линкуются?

Ответы>>777950

23 Июн, 12:22 #407 #777950

>>777948
Ну можно и так сказать.
Только линкуются они с ntoskrnl

23 Июн, 12:22 #408 #777952

>>777947
Ты дебил чтоле? У линуксовых прог - код открытый.

Ответы>>777954

23 Июн, 12:23 #409 #777954

>>777952
И?

Ответы>>777956

23 Июн, 12:24 #410 #777956

>>777954
Хуи, блять.
Винда запускает БИНАРЬ, и КОД никаким образом их не использует.

А вот выдрать кусок ядра линукса - например сетевой стек - и вставить в код винды - ты не можешь.
(Поэтому в винде сетевой стек спиздили из BSD)

Ответы>>777959>>777962

23 Июн, 12:26 #411 #777959

>>777956
Пиздец ты долбоёб. Нахуй ты мне объясняешь, что нарушения GPL нет, когда я с этим не спорю.

Ответы>>777960

23 Июн, 12:27 #412 #777960

>>777959
Это ты долбоеб. Ой все, уебывай, больше не кормлю.

Ответы>>777985>>778780

23 Июн, 12:27 #413 #777962

>>777956
>(Поэтому в винде сетевой стек спиздили из BSD)
пруфов, конечно, нет

23 Июн, 12:45 #414 #777985

>>777960
Т.е. нарушений GPL нет.

23 Июн, 22:46 #415 #778440

Ваш срач услышан в шапке

> Компания Red Hat объявила об изменении лицензии на DLL-библиотеку Cygwin, эмулирующую базовый Linux API в Windows и позволяющую с минимальными изменениями собирать созданные для Linux программы. Вместо лицензии GPLv3+ библиотека отныне распространяется под лицензией LGPLv3+, которая позволяет связывать код с приложениями под любыми лицензиями, в том числе с проприетарным ПО.

> Кроме того, Red Hat отказывается от поставки коммерческой лицензии на Cygwin, так как LGPL позволяет обойтись без лицензионных исключений, и больше не будет требовать от разработчиков, присылающих изменения в Cygwin, подписания соглашения о передаче имущественных прав на код. Соответственно процедура участия в разработке существенно упрощается и лишается бумажной волокиты, отпугивающей многих разработчиков.

> Одновременно доступен выпуск Cygwin 2.5.2, в котором отражено изменение лицензии и прекращена поддержка Windows XP и Windows Server 2003. Изменение лицензии произведено только для библиотеки, утилиты и другие компоненты пакета Cygwin (cygserver, cygpath, regtool и т.п.) остались под лицензией GPLv3+.

Ответы>>778499>>778539>>778951

23 Июн, 23:28 #416 #778470

>>770283 (OP)
Анонище, расскажи, что ты пишешь на сишке? Или хочешь написать?

Ответы>>778508

24 Июн, 00:29 #417 #778499

>>778440
У цугвина способ другой. Там перекомпиляция требуется специально под cygwin, а в десяточке сделали трансляцию системных вызовов, что позволяет просто брать бинарь с его окружением и запускать, не рассказывая, что ядро не его родное.

24 Июн, 01:15 #418 #778508

>>778470
Ну, например на прошлой неделе написал несложное ESME для использования в одном проекте на работе (работаю не программистом, но иногда что-то такое пилю), в свободное время потихоньку пишу свой игровой движок.
Что писать мне без разницы, главное, чтобы у этого в итоге было хоть какое-нибудь применение.

Ответы>>778703

sage 24 Июн, 02:36 #419 #778536

>>777846
> Ведь по GPL нельзя использовать GPL софт в качестве компонента для несвободной системы.
Ты не понял, что в GPL подразумевается под "компонентом системы". Программы, которые ты ставишь на винду — это не компоненты винды.

Тем более, что microsoft не распространяет софт. Он подтягивается из убунтовых репов.

sage 24 Июн, 02:38 #420 #778539

>>778440
Лол. Красношляпые поняли, что их платная цацка теперь нафиг не нужна с появлением подсистемы Linux в Windows. И стали раздавать её бесплатно всем, а не только опенсорсу.

24 Июн, 13:30 #421 #778703

>>778508
>Что писать мне без разницы, главное, чтобы у этого в итоге было хоть какое-нибудь применение.
два чаю

24 Июн, 15:11 #422 #778780

>>777960
Всё никак не могу догнать эту разницу между LGPL и GPL.
Есть библиотека. Распространяется по LGPL. Можно мне её использовать в своём платном приложении с закрытым исходным кодом и если можно то как?

Ответы>>778788

24 Июн, 15:24 #423 #778788

>>778780
наверное так же как и все остальные поступают, линкуешь и молчишь

92 Кб, 662x620

24 Июн, 19:16 #424 #778922

Я вам мемес принес.

Ответы>>778928

19 Кб, 310x201

24 Июн, 19:22 #425 #778928

>>778922
Последняя неправильная

Ответы>>778939

24 Июн, 19:45 #426 #778939

>>778928
Хипстеры же. Такие же как сейчас на NodeJS хуякают.
Хуя-хуяк и в продакшн.
Недоязык, недоОС.

Ответы>>778942

24 Июн, 19:49 #427 #778942

>>778939
> Недоязык
Мне, простому колхознику, и этот недоязык силов не хватает понять.

Ответы>>778999

24 Июн, 20:04 #428 #778951

>>778440
Суки, ЭксПи не пожалели.
:(

24 Июн, 20:51 #429 #778999

>>778942
Для колхозников есть Delphi.

Ответы>>779009

24 Июн, 20:58 #430 #779009

>>778999
Иди нахер, назло тебе Си выучу.

Ответы>>779012

24 Июн, 21:02 #431 #779012

>>779009
Delphi один раз выучил, и за вечер клепаешь автоматизацию автосервиса, получаешь бабло.
А к Си тебе придется еще учить C++, потом Qt, потом SQLite, потом месяц с этим всем пердолиться, а результат такой же.

Ответы>>779013

24 Июн, 21:05 #432 #779013

>>779012
Мне одного Си хватит. Я чтоб с контроллерами пердолиться.

Ответы>>779066

24 Июн, 21:45 #433 #779066

>>779013
Для этого Си не надо знать. Битшифтики, ножку 11 поднял, два байта в порт 22 переслал.

Ответы>>779083

24 Июн, 21:52 #434 #779083

>>779066
Интересные у тебя представления об этой сфере.

Ответы>>779086>>779123

24 Июн, 21:54 #435 #779086

>>779083
Ардуинщик наверное.

63 Кб, 500x681

24 Июн, 22:16 #436 #779105

>>770283 (OP)
У меня есть значение цвета в виде INT. У меня есть значение сдвига цвета, тоже в виде INT. Т.е. загружая палитру, я выполняю такой кусок кода:
for (i = 0; i < palette_size; i++) vram_palette = rom_palette + shift;
Как сделать так, чтобы цвет с нулевым значением так и оставался нулевым, без сдвига? Обыкновенный IF мне кажется слишком медленным, как и такая хуита:
sign = (color > 0) — (color < 0);
color = color + shift * sign;

Ответы>>779106

24 Июн, 22:17 #437 #779106

>>779105
Блядь, макаба форматирование пожрала. Вот на пастебине, короче:
http://pastebin.com/tVQTdWk4

24 Июн, 22:51 #438 #779123

>>779083
Думаешь он будет DSP программировать и встроенные в кристалл мини-FPGA ловко вертеть на хую, устраивая в них dynamic offloading критических частей сложнейших алгоримтов?
Хрен там, будет байтики между портами возить на тележке и закатывать солнце вручную.

Ответы>>779279

195 Кб, 397x382

25 Июн, 01:25 #439 #779204

https://github.com/nim-lang/Nim/wiki/Nim-for-C-programmers

25 Июн, 01:27 #440 #779205

Посоветуйте книги по обработке сигналов для ньюфагов.

25 Июн, 08:07 #441 #779279

>>779123
> stm32
> байтики на тележке
ню-ню

Ответы>>779372

25 Июн, 12:19 #442 #779372

>>779279
Прямая Память-Тележка Двойной Емкости - это ведь совсем не тележка!

25 Июн, 15:46 #443 #779504

Говноеды, что вы там пишете под МК?

Ответы>>779577

25 Июн, 16:51 #444 #779577

>>779504
Драйвер вибратора твоей мамки.

15 Кб, 669x563

26 Июн, 07:40 #445 #780042

А что тут не так?
Мимо проходил

Ответы>>780153

26 Июн, 11:55 #446 #780153

>>780042
Ты билд делал?
Он нормально забилдился?
Прошлый запущенный процесс отладки завершен?
Почему у меня капча из хуйцов?

26 Июн, 12:06 #447 #780164

>>777814
Нет, это ты сосешь.

Второй случай нужен, чтобы держать данные ридонли-секции.

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

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

Аналогично можно делать таблицы виртуальных методов, конечные автоматы и прочие ABI с размещением во флеш.

26 Июн, 12:09 #448 #780166

>>777885
Ну, убунта же делала linux.sys...

И никто тебе не запрещает поставить швабодный gcc на венду....

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

67 Кб, 1224x653

26 Июн, 14:19 #449 #780268

Анон, хочу изучать си, но споткнулся на первом же шаге из Кернигана и Ричи. Вот я написал код для вывода "хелло ворлд".
Что мне теперь делать? Как запустить программу? В гугле пишут нажать "начать отладку", но у меня она серая.

Ответы>>780279>>780313>>780324

26 Июн, 14:24 #450 #780279

>>780268
Левее "Сброка", собери, откомпилируй и радуйся жызни.

Ответы>>780290

19 Кб, 894x219

26 Июн, 14:31 #451 #780290

>>780279
Что-то не выходит

Ответы>>780298

26 Июн, 14:35 #452 #780298

>>780290
Ты ; проебал после вызова pritf

Ответы>>780307

26 Июн, 14:36 #453 #780300

Объясните, нахуя в каждом Win32 приложении должен быть цикл обработки сообщений? Его задача заключается в том, что функция GetMessage достает из системной очереди приложений очередной сообщение и передает его в DispatchMessage, где производится поиск оконной процедуры, которой предназначено сообщение, и этой процедуре отправляется данное сообщение.

Но нахуя это делать в каждом приложении? Пусть, например, эксплорер достает все приложения из системной очереди и передает их нужным оконным процедурам.

Ответы>>780301>>780308>>780330

26 Июн, 14:36 #454 #780301

>>780300
>все приложени
Все сообщения.
быстрофикс

19 Кб, 874x229

26 Июн, 14:38 #455 #780307

>>780298
Я видимо что-то не то делаю.

Ответы>>780315>>780402>>780414

26 Июн, 14:38 #456 #780308

>>780300
Наследие Windows 3.1, когда не было тредов и была кооперативная многозадачность.

26 Июн, 14:40 #457 #780313

>>780268
Ты ебанутый? У тебя солюшн пустой

Ответы>>780324

26 Июн, 14:40 #458 #780315

>>780307
1) int main()
2) return 0; добавь еще, после printf

26 Июн, 14:43 #459 #780324

>>780313
>>780268
> проектов: 0
Хм, да. Что-то ты не то сделал. Закрой это нахуй и создай новый проект (Консольное приложение). В проекте добавь новый элемент, файл C++ и назови его main.c. Там уже набирай (или вставляй) код и компилируй.

Ответы>>780354

26 Июн, 14:45 #460 #780330

>>780300
Этот цикл нужен для ожидания\обработки действий пользователя. GetMessage - точка блокировки (без блокировки цикл сожрет все процессорное не выполняя полезной работы). Не ну ты конечно можешь их не обрабатывать (например так всякие консольные утилитки делают), но тогда и твой процесс завершиться очень быстро.
И это не только в винде, это во всех системах, где ожидают действий от юзера. Эксплорер виндовой это самое обычное приложение, а ты просто ленивая скотина.

Ответы>>780338

26 Июн, 14:48 #461 #780338

>>780330
Но можно было просто одной функцией Run(); сделать (вместо 3-х, GetMessage, TranslateMessage и DispatchMessage), а сообщения обрабатывать в отдельных потоках.

Ответы>>780344>>780381

26 Июн, 14:52 #462 #780344

>>780338
А основная нитка что тогда по твоему делать?
В Qt в общем то одним вызовом и запускается все это (а внутри уже и крутится цикл обработки эвентов)

Ответы>>780361

5 Кб, 690x292

26 Июн, 14:56 #463 #780354

>>780324
Всем спасибо, сделал всё по-новой - заработало.

Ответы>>780357

26 Июн, 14:58 #464 #780357

>>780354
А, такой вопрос. Что-то посвежее КиР есть? Там не было ничего про return 0 и int перед main тоже не было

Ответы>>780364>>780381

26 Июн, 14:59 #465 #780361

>>780344
В Run просто вызывать Sleep(1), чтобы не было блокировки. И проверять, не было ли получено сообщение WM_QUIT.

Ответы>>780388

26 Июн, 15:01 #466 #780364

>>780357
Какое у тебя издание, не первое случайно?

Ответы>>780371

7 Кб, 550x285

26 Июн, 15:07 #467 #780371

>>780364

Ответы>>780394>>780399

1203 Кб, 839x794

600 Кб, 841x643

26 Июн, 15:07 #468 #780372

Откуда эти пикчи в книге Криса Касперски про шеллкоды? Он что, из этих?

Ответы>>780379

26 Июн, 15:12 #469 #780379

>>780372
Да, он из интернетов

26 Июн, 15:14 #470 #780381

>>780338
> Но можно было просто одной функцией Run(); сделать
Нельзя. Из тройки GetMessage/TranslateMessage/DispatchMessage обязателен только GetMessage - дождаться уведомления о выключении компа, например. Остальные нужны не всегда. Еще в цикле обработки событий могут быть IsDialogMessage и TranslateAccelerator, они тоже не всегда нужны. А в играх делают цикл без блокировок, что-то типа if (PeekMessage()) { ...dispatch... } else { render(); }. Поэтому одного Run даже с кучей флагов нифига не достаточно, чтобы покрыть все случаи использования.

>>780357
Прата из шапки. На крайний случай Кочан. Но лучше сначала K&R дочитай.

Ответы>>780387

26 Июн, 15:21 #471 #780387

>>780381
А есть ли в этом смысл, если он такой старый?

Ответы>>780394

26 Июн, 15:23 #472 #780388

>>780361
Да ты просто гений программирования. Очень замечательный интерфейс получается. Ты правда думаешь, что если тебе не хочется делать цикл приема сообщений, то юзеры должны ждать секунду пока твой код сообразит обработать сообщения?

Ответы>>780394>>780408

26 Июн, 15:29 #473 #780394

>>780387
Это классика. К тому же, второе издание знает о C89 третьего издания вообще не существует - хуй знает, что за говно у тебя >>780371 тут, а множество консерваторов до сих пор пишет именно на C89.

>>780388
Ну вообще-то хотя бы один из тредов программы, слинкованной с /SUBSYSTEM:GUI, обязан обрабатывать сообщения, или винда сочтет, что программа зависла.

Ответы>>780451

26 Июн, 15:31 #474 #780399

>>780371
Странно, это уже после выхода стандарта. Везде советуют использовать именно int main и возвращать 0:
http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?id=1043284376&answer=1044841143
https://www.ty-penguin.org.uk/~auj/voidmain/
Либо там авторы просто не заморачивались возвращаемым значением.
В разных скриптах считается, что при успешном выполнении программа должна возвращать 0, иначе код ошибки.

26 Июн, 15:32 #475 #780402

>>780307
>Я видимо что-то не то делаю.
Используешь продукты Microsoft.
CodeBlocks накати бля.

Ответы>>780411

26 Июн, 15:35 #476 #780408

>>780388
> секунду
Как же я проиграл.

26 Июн, 15:37 #477 #780411

>>780402
Только консолька. Без консольки хороший сишник не получится.

Ответы>>780414

26 Июн, 15:38 #478 #780414

>>780307
> проектов: 0
Проект создай, епт.

>>780411
Нахуй иди. Ну напишет он cl /c main.c && link main.obj, и что, это такое адски необходимое на начальных этапах знание? Или про это так сложно прочитать, когда оно понадобится?

Ответы>>780450

26 Июн, 15:59 #479 #780438

Callback функции — это изобретение си или с++? Есть какой-нибудь авторитетный источник с описанием что это такое и как правильно реализовать?

Ответы>>780442>>780443>>780445>>780597

26 Июн, 16:03 #480 #780442

>>780438
Это паттерн существовавший ещё до си, просто широкую распространённость получил только после ноды с её асинхронностью на каждый пук.

Реализовывается везде одинаково – передаёшь указател на ф-цию как аргумент и вызываешь когда окончишь работу/по опр. событию и тд.

Ответы>>780467

26 Июн, 16:03 #481 #780443

>>780438
>Есть какой-нибудь авторитетный источник с описанием что это такое и как правильно реализовать?
Лямбда-исчисление.

26 Июн, 16:07 #482 #780445

>>780438
Разберись лучше с корутинами, это более общая абстракция https://www.youtube.com/watch?v=_fu0gx-xseY

Ответы>>780447>>780596

sage 26 Июн, 16:11 #483 #780447

>>780445
> In C++17 this is how you would do...
Ты тредом ошибся.

26 Июн, 16:12 #484 #780450

>>780414
> Нахуй иди.
Ты в скарказм уже не можешь?

46 Кб, 520x850

26 Июн, 16:12 #485 #780451

>>780394
> третьего издания вообще не существует - хуй знает, что за говно у тебя
И у меня

Ответы>>780455

26 Июн, 16:17 #486 #780455

>>780451
> Для настоящего третьего русского издания перевод заново сверен с оригиналом, в него внесены некоторые поправки, учитывающие устоявшиеся за прошедшие годы изменения в терминологии, а так же учтены замечания
В общем, они его придумали. По сути это второе издание перевода второго издания K&R.

26 Июн, 16:32 #487 #780467

>>780442
>Это паттерн существовавший ещё до си, просто широкую распространённость получил только после ноды с её асинхронностью на каждый пук.
Проиграл с этого хипстера. Он был широко распространён ещё во времена Windows NT, где был коллбек на каждое событие в интерфейсе.

Ответы>>780470>>780485>>780488

sage 26 Июн, 16:35 #488 #780470

>>780467
Проиграл с этого проигравшего. Какое слово во фразе "еще до си" тебе непонятно?

26 Июн, 16:49 #489 #780485

>>780467
Олдфажный хакер порвался)))

26 Июн, 17:04 #490 #780488

>>780467
Пиздуй вирусы пиши и не выйобуцся

26 Июн, 17:05 #491 #780489

Си старики потрясают клюками, кек

Ответы>>780491

26 Июн, 17:13 #492 #780491

>>780489
У пистушков и раби-даунов так печет, что они несут свой баттхерт в тред к старикам. Сделай плиз сайт вот такой как этот.

Ответы>>780493

26 Июн, 17:14 #493 #780493

>>780491
У меня вообще не печет, я пришел сюда чтобы стать си стариком, как и вы!

Ответы>>780500

26 Июн, 17:26 #494 #780500

>>780493
А я уже старик, а решил Си изучить. Доживу ли до конца изучения?

Ответы>>780501

26 Июн, 17:27 #495 #780501

>>780500
Чому нет, это же не плюсы.

Ответы>>780502

26 Июн, 17:29 #496 #780502

>>780501
8 лет хватит, чтоб в 50 накатить за знание С?

Ответы>>780506

26 Июн, 17:32 #497 #780506

>>780502
А я-то думал, я здесь самый старый. Хватит. Если не залезать в дебри, язык простой. Месяц на изучение синтаксиса, год на изучение либ и тонкостей типа неопределенного поведения. Умножь на два, если ты уже не тот, что прежде.

Ответы>>780509

26 Июн, 17:35 #498 #780509

>>780506
> не тот, что прежде
Давно уже не тот. В 93 хуярил на Ростовской областной олимпиаде по информатике. Места занимал. А сейчас туплю над структурой по пол дня.

Ответы>>780515

26 Июн, 17:52 #499 #780515

>>780509
Осиляторство языка - это еще не главное. Может оказаться, что тебе просто писать нечего, потому что все уже написано, а то, что не написано, неподъемно для одного человека. Тогда, наверно, только реверс и дрочение класических алгоритмов может сохранить интерес к кодингу.

Ответы>>780603

26 Июн, 19:40 #500 #780594

Где в линуксе определен addr_t?

26 Июн, 19:45 #501 #780596

>>780445
как связаны сопрограммы и коллбек-функции

26 Июн, 19:48 #502 #780597

>>780438
коллбек функции в си - это способ параметризировать поведение (а не данные)
в разных языках и разных либах по разному решается
это могут быть делегаты встроенные в язык в шарпике и явке, интерфейсы встроенные в язык, либо делегаты и интерфейсы реализованные на уровне либ, либо тупые коллбеки, либо тру лямбды (не синт сахар) и другая экзотерика в функциональщине

Ответы>>780604

26 Июн, 19:53 #503 #780603

>>780515
А что если только это и интересно, а вот писать самому-не очень?

26 Июн, 19:54 #504 #780604

>>780597
ах, да, там если лезть в функциональщину, то еще и есть замыкания, функции высших порядков
альтернатива в опп - это полиморфизм

ПЕРЕКАТ # OP 26 Июн, 20:18 #505 #780631

А у нас тем временем ПЕРЕКАТ. И снова со старой картинкой и старой шапкой.

>>780630 (OP)
>>780630 (OP)
>>780630 (OP)
>>780630 (OP)
>>780630 (OP)

Тред утонул или удален.
Это копия, сохраненная 14 июля 2016 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.

« /pr/В начало тредаВеб-версияНастройки/a//b//mu//s//vg/Все доски

Пользуетесь скринридером — пишите, что можно улучшить.
Host-Food.ru — надёжный хостинг от 12 руб/мес | Free DNS
Зеркала М.Двача: m2ch.hk, m2ch.lib, m2chfapiswfw2wcakptqp4o6ltgchvjuxfab7urxlduraomtlnhw5xad.onion