Сохранен 508
https://2ch.hk/pr/res/723844.html
Прошлые домены больше не функционируют, используйте адрес ARHIVACH.HK.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

C Programming Language #6

 Аноним OP 22/04/16 Птн 19:31:40 #1 №723844 
14613427008260.png


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

Что читать:

- Классика от Отцов: 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/%7Eats/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.

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

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 (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/

Шапка: http://piratepad.net/bJ1SdmkZyu
Аноним 22/04/16 Птн 20:12:51 #2 №723908 
отписываюсь в треде заменяющего мне друзей.
Аноним 22/04/16 Птн 21:59:40 #3 №723997 
Поясните за Clang. Всегда думал, что этот фронтенд и LLVM могут работать полностью автономно, но внезапно оказалось, что к нему надо еще и MinGW. Выходит Clang - это просто статический анализатор, который нахуй никому не сдался?
Аноним 22/04/16 Птн 22:08:20 #4 №724002 
>>723997
Нет, даун. На сперме MinGW может требоваться из-за platform-specific хидеров, не больше.
Аноним 22/04/16 Птн 22:31:52 #5 №724023 
>>723997
>>724002
Не только platform-specific. Большей части стандартных хедеров и либ тоже нет, еще отсутствуют всяческие традиционные утилиты типа make, поэтому без MinGW шлангом пользоваться сложно.
Аноним 22/04/16 Птн 22:34:35 #6 №724027 
>>723997
>Всегда думал, что этот фронтенд и LLVM могут работать полностью автономно
1. Собираешь llvm и clang с помощью бинарного компилятора под винду - mingw или msvs.
2. Собираешь llvm и clang с помощью собранного тобой clang.
sageАноним 22/04/16 Птн 23:05:18 #7 №724061 
14613555186740.jpg
>>723844 (OP)
> 2016
> Pure C
Аноним 22/04/16 Птн 23:11:17 #8 №724065 
>>724061
А есть еще языки?
Аноним 22/04/16 Птн 23:12:26 #9 №724067 
>>724065
ну там, КРЕСТЫ
Аноним 22/04/16 Птн 23:14:01 #10 №724068 
>>724067
А на них вообще возможно писать нормальный код и есть ли для них нормальный компилятор?
Аноним 22/04/16 Птн 23:22:21 #11 №724069 
Нет треда про системное программирование, так что напишу сюда. Нужна инфа про то, как повеливать над NTFS. Книги, статьи, что угодно. Из того что нашел в гугле, только описание структуры файловой системы. Мне же нужно восстанавливать удаленные файлы.
Аноним 22/04/16 Птн 23:24:47 #12 №724072 
>>724069
>системное программирование
Систему скажи. Если линукс, то кури FUSE и NTFS-3g.
Аноним 22/04/16 Птн 23:26:41 #13 №724075 
>>724072
Да линукс. Спасибо.
Аноним 23/04/16 Суб 00:07:03 #14 №724109 
>>724069
> Мне же нужно восстанавливать удаленные файлы.
Где-то я тебя видел. В одном зашкварном месте.
Аноним 23/04/16 Суб 00:08:51 #15 №724111 
>>724068
>есть ли для них нормальный компилятор?
turbo c++
Аноним 23/04/16 Суб 00:13:15 #16 №724116 

>>724109
/dev/videoX? кекус
Аноним 23/04/16 Суб 00:13:23 #17 №724117 
>>724109
>В одном зашкварном месте.
В кровати твоей мамы?
Аноним 23/04/16 Суб 13:40:27 #18 №724425 
>>723844 (OP)
> Дрочим на --analyze
это статик анализатор? и как, лучше цппчека?
Аноним 23/04/16 Суб 16:02:56 #19 №724514 
Добавьте в шапку следующего треда информацию про конпеляторы для windows, ну там TDM-GCC, mingw-64, итд
Аноним 23/04/16 Суб 16:29:14 #20 №724530 
>>724514
На них антивирусы агрятся.
sageАноним 23/04/16 Суб 16:42:32 #21 №724538 
>>724530
Качай с официального сайта а не от васянов.
И вообще
>2016
>антивирусы
Ты ж программист (наверное). Должен же понимать зачем нужны антивирусы и как работают.
Аноним 23/04/16 Суб 18:13:52 #22 №724626 
>>724538
>2076
>реагировать на открытую провокацию
Спермадаун, тебя сейчас тонко подъебали.
Алсо, в шапке есть инфа про VS – этого за глаза. Даже если не хочешь тащить эту толстушку себе под пледик на жд – всё равно как минимум WinSDK установить придётся (а главный шиндокомпилер идёт в комплекте).
MinGW и прочие испражнения нужны только из-за всякой POSIX-хуиты, которой на сперме официально не было до недавнего времени (а скоро он будет в шинде из коробки и пердолиг с MinGW как и он сам умрут).
Аноним 23/04/16 Суб 18:19:21 #23 №724629 
>>724626
>MinGW нужны только из-за всякой POSIX-хуиты
Давно такие дауны не попадались.
sageАноним 23/04/16 Суб 18:36:33 #24 №724644 
>>724629
Двачаю.
Аноним 23/04/16 Суб 18:46:26 #25 №724660 
что такое clang/C2 и чем он полезен?
Аноним 23/04/16 Суб 18:51:21 #26 №724665 
>>724660
Обычный мейнстрим. Если ты не знаешь зачем оно тебе — оно не нужно. И не слушай дебилов, которые тебе скажут, что тебе обязательно нужно выбросить gcc и перекатиться на clang, без четкой аргументации.
Аноним 23/04/16 Суб 18:52:32 #27 №724671 
>>724665
просто хотелось узнать что это такое и какие функции выполняет
Аноним 23/04/16 Суб 18:57:28 #28 №724677 
>>724671
clang это компилятор, разрабатываемый Apple и Google. Стремится быть альтернативой древнему GCC. Сделать его решили из-за того, что Столлман в свое послал Apple с их LLVM. Для подробностей лучше прочти документацию по нему. А еще лучше, если ты прежде научишься пользоваться GCC, чтобы потом тут не брызгать слюной, рассказывая на о мамонтах.
Аноним 23/04/16 Суб 19:05:38 #29 №724689 
>>724677
это я и так знаю, я про clang/C2 в Visual Studio спрашивал
Аноним 23/04/16 Суб 19:34:03 #30 №724723 
>>724677
А ещё лучше найди последнюю версию GCC до выхода шланга. В то время это было говнище с медленной компиляцией и абсолютно не читаемым говном вместо ошибок. Про то что в бэкэнде GCC разбираются 1.5 человека, забудем. И про то что кое-кто любит ломать всё нахуй ради очередной оптимизации через UB тоже промолчим, чо уж.

На данный момент в GCC исправлен только первый пункт (точнее это в шланге регрессия). С бенчмарками справляются с переменным успехом, чаще в сторону гнутого, ок.

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

>>724689
За тем же за чем и убунтову фо швиндовз. Маркетинг.
Из реально адекватных целей разве что более быстрая реализация последнего плюсового стандарта (последний компилятор из студии до сих пор поддерживает 14-й стандарт где-то наполовину).
Аноним 23/04/16 Суб 19:37:33 #31 №724725 
>>724723
>последний компилятор из студии
Даже не удивлен. Они всегда были такими слоупоками!
Аноним 23/04/16 Суб 20:49:05 #32 №724793 
>>724723
>последний компилятор из студии до сих пор поддерживает 14-й стандарт где-то наполовину
Пруфов не будет, конечно же.
Аноним 23/04/16 Суб 21:05:08 #33 №724798 
>>724793
https://msdn.microsoft.com/ru-ru/library/hh567368.aspx#cpp14table
Печально однако, что сосач ныне забит дегенератами которые не в силах написать в гугл "vs 2015 c++ 2014".
Аноним 23/04/16 Суб 21:17:31 #34 №724813 
>>724798
Дегенерат, приводишь утверждение — приводи пруфы.
Вот тут http://en.cppreference.com/w/cpp/compiler_support говорят что variable templates поддерживаются (по твоей ссылке утверждают иное).
Так что пока нету только Extended constexpr и Member initializers and aggregates (NSDMI)
Это 2 фичи из 12 из списка фич C++14.

10/12 — это "поддерживает наполовину"?!
Аноним 23/04/16 Суб 21:18:03 #35 №724816 
>>724798
Печально однако, что шяшитред ныне забит плюсовыми дегенератами, которые не в силах съебать в соседний тред.
Аноним 23/04/16 Суб 21:25:25 #36 №724824 
>>724514
А MinGW уже не содержит GCC, который идет первым пунктом?

>>724660
> clang/C2
В Microsoft осознали, что не осиливают быстро реализовать современные стандарты C/C++, поэтому взяли clang и прикрутили к нему свой собственный кодогенератор С2 (тот же, что и в их собственном компиляторе). Получившийся компилятор поддерживает C11 так же, как и сам clang/LLVM (кроме либ, которые в Microsoft застряли на уровне C89). Оптимизатор у Microsoft ничего так, поэтому если хочется C11 в студии, посмотреть на clang/C2 имеет смысл.
Аноним 23/04/16 Суб 21:36:21 #37 №724833 
>>724824
> clang/C2
Я правильно понял, что BSDблядки соснули?

MS просто взяла их фронтенд и заюзала, не открывая никакого собственного кода (какие-то наработки для поддержки винды пообещали возвращать в основное дерево, но бекенд-то не откроют).
Аноним 23/04/16 Суб 21:38:36 #38 №724837 
>>724833
У шланга и собственный компилятор вполне неплохой, нахуя кому-то вне Windows и Visual Studio нужны наработки Microsoft? Алсо, вангую, что Microsoft компилятор таки откроет рано или поздно, как это сделала с дотнетом.
Аноним 23/04/16 Суб 21:49:08 #39 №724849 
>>724837
>Microsoft компилятор таки откроет рано или поздно
а юзкейсы?
Аноним 23/04/16 Суб 21:49:21 #40 №724850 
>>724813
>на сайте msdn сказано нет
>ВРЁТИ!!! НА САЙТЕ ВАСЯНА СКАЗАНО ИНАЧЕ!!!
Аноним 23/04/16 Суб 21:52:25 #41 №724854 
>>724850
васян по умолчанию - хакирь, а создатель - ламер. тут всё логично, культура окон, пойду сворую студию.
Аноним 23/04/16 Суб 21:55:53 #42 №724861 
>>724837
У clang нет пока еще библиотек под винду
Аноним 23/04/16 Суб 21:56:51 #43 №724863 
>>724850
Я сейчас проверил пример с Variable templates. Они компилируются. Прям как указано на "сайте васяна". Хотя не должны, если верить MSDN.

Давай ты прекратишь позориться в этом тренде и просто пойдёшь нахуй.
Аноним 23/04/16 Суб 22:01:01 #44 №724867 
>>724863
ну заебись что так, наверно. чё такое вариативные шаблоны? да похуй мне
Аноним 23/04/16 Суб 22:03:47 #45 №724869 
>>724867
Не вариативные (variadic), а variable.
Мутная хрень какая-то http://stackoverflow.com/questions/21051141/c14-variable-templates-what-is-their-purpose-any-usage-example
Аноним 23/04/16 Суб 22:20:50 #46 №724882 
>>724869
ну да, как получается, параметрированные? хуй знает, у меня как-то вариативность в голове крутится чёт...
Аноним 23/04/16 Суб 22:21:27 #47 №724884 
>>724882
Нет. Шаблонные переменные, короче.
Аноним 23/04/16 Суб 22:22:18 #48 №724885 
>>724884
я тоже самое и сказал
Аноним 23/04/16 Суб 22:23:05 #49 №724887 
А, или нет. в плане, шаблон - переменная?
Аноним 23/04/16 Суб 22:27:37 #50 №724893 
>>724887
>>724867
>>724863
Это все конечно очень интересно, но может вам проседовать в >>714898 (OP)? У нас тут кроме _Generic отродясь ничего не было.

Аноним 23/04/16 Суб 22:27:50 #51 №724895 
А забейте, я нихуя не понимаю в определениях. как я понял, чёт типо перегрузки значения. не парьтесь, я слишком туп
Аннексия. Аноним 23/04/16 Суб 22:28:59 #52 №724896 
>>724893
Теперь это C++-тред.
Аноним 23/04/16 Суб 22:36:55 #53 №724906 
я кстати дописал деление и уножение чисел произвольной длины - ох сколько я получил кайфа отлаживая это всё дело... но знаете, это странно, но отладкой заниматься приятней чем кодом, ты как бы рубишься с собой, как ты мог столько наошибаться, и рубишься побыстрей всё спрятать пока мамка не увидела, тыж умный.

но компиляторы пиздец меня огорчили, они даже не предопределяют a+=b c = a < b как бит переноса в c....
Аноним 23/04/16 Суб 22:43:52 #54 №724909 
но хуйнёво как-то, выбиваем старший бит делимого, проверяем делитель сдвинутый к этому биту на меньшесть (или уменьшаем позицию) , вычитаем и складываем степень - наверно не самое оптимально, но я хреново учился в школе, вот был бы умный, придумал бы чё, как распараллелить или типо того...
Аноним 23/04/16 Суб 22:50:20 #55 №724914 
>>724863
>Хотя не должны, если верить MSDN.
Значит спермобляди в очередной раз соснули и им приходится брать документацию у васяна, так как их господин не соизволит обновлять ее.

>Давай ты прекратишь позориться в этом тренде и просто пойдёшь нахуй.
Позоришься тут ты. Это Си тред, так что пиздуй в свой загон.
Аноним 23/04/16 Суб 22:51:20 #56 №724915 
>>724914
Уроки иди делай.
Аноним 23/04/16 Суб 22:52:40 #57 №724917 
>>724915
>Нечего сказать и обосрался? Скажи опоненту что он ШКОЛЬНИК!
Ясно.
Аноним 23/04/16 Суб 22:56:37 #58 №724920 
>>724917
Я тут с уважаемым господином обсуждал компилятор от MS.
Влез истеричный школьник.
Ему на это указали.
Он порвался.

Вопрос: зачем?
Аноним 23/04/16 Суб 23:05:08 #59 №724923 
>>724920
Этот господин: >>724798 сослался на официальную документацию, так один дебил просто не верил ему.
Этот петух: >>724813 ссылается на книгу рецептов васяна и называет человека, который читает официальную документацию, дегенератом.
Это по твоему обсуждение компилятора? Тем более это Си-тред. Съеби в свой загон, прокаженный.
>>724863
Здесь петух не выдерживает и рвется изливая ненависть на человека, который критикует чтение отрицание официальной документации.
>>724915
Здесь петух за неимением аргументов, начинает проецировать свою жизнь на других.
>>724920
А здесь петух решил зареверсировать и действует методом: "Порвался? Скажи опоненту с умным видом, что порвался он.".
Вопрос: Зачем он это делает?
Аноним 24/04/16 Вск 00:13:25 #60 №724980 
Зачем нужен си, если есть плюсы?
Аноним 24/04/16 Вск 00:14:26 #61 №724981 
>>724980
Толсто.
Аноним 24/04/16 Вск 00:21:33 #62 №724984 
>>724981
>724980
>Толсто.
Я не троль
Аноним 24/04/16 Вск 00:40:09 #63 №725000 
>>724984
Ага. Я так и поверил. А вообще, дело хотя бы в том, что Си стремится оставаться простым, прозрачным и низкоуровневым, в то время как кресты стали огромным неуправляемым комбайном. Это одна из основных причин почему кресты мало используют в системщине. Keep it simple stupid.
Аноним 24/04/16 Вск 00:44:05 #64 №725004 
>>724980
Зачем нужны плюсы, если есть Rust?
Аноним 24/04/16 Вск 00:45:56 #65 №725006 
>>725000
Вскукареки ниосилятора вижу я, даже гцц на плюсах, а ты всё пиши драйвера для ком порта.
Аноним 24/04/16 Вск 00:47:22 #66 №725008 
>>725004
зачем раст если есть дельфи?
Аноним 24/04/16 Вск 00:48:57 #67 №725009 
>>725008
Зачем делфи, если есть турбо паскаль?
Аноним 24/04/16 Вск 00:49:30 #68 №725011 
>>725004
Не могу поверить, что опускаюсь до языкосрачей, но против Rust у меня есть железобетонный аргумент: через 4-5 лет с ним наиграются и выкинут, а сишечка как была везде десятилетиями, так еще пару десятилетий проживет точно если, конечно, на ней не перестанут писать из отвращения после ввода замыканий в С2x.
Аноним 24/04/16 Вск 00:51:50 #69 №725014 
>>725009
потому что есть ОКРУЖЕНИЕ
Аноним 24/04/16 Вск 00:54:02 #70 №725017 
>>725011
Да причем тут сишечка, грешный?
>Зачем нужны плюсы, если есть Rust?
>через 4-5 лет с ним наиграются и выкинут
Whatever, но лучше же раст, чем кресты?
Аноним 24/04/16 Вск 00:55:52 #71 №725019 
>>725017
> причем тут сишечка
Потому что я на ней пишу, а тут тредик про сишечку.

> лучше же раст, чем кресты
История какбэ говорит нам, что В КРЕСТЫ ТАК И НЕ НАИГРАЛИСЬ.
Аноним 24/04/16 Вск 00:56:04 #72 №725021 
На самом деле, если так подумать, сколько людей потеряло наше ремесло, ведь на дельфи писал каждый офсный чувак... а писали ли столько на на визуалке?
Аноним 24/04/16 Вск 00:56:09 #73 №725022 
>>725014
И в турбопаскале есть.
Аноним 24/04/16 Вск 00:58:00 #74 №725023 
>>725022
я тебе так скажу, я втягивался через ФРИ БЕЙСИК - прикольно было.
Аноним 24/04/16 Вск 01:00:36 #75 №725025 
но в аське помню чуваков, помню сайты, где типы наваливали формочки и делали пошаговые игры свои, или даже текстовые... блять.... не помню как оно называлось, но было забавно, я тогда малым примастился рисовать - рисовал хуёвейши, но вроде катило....
Аноним 24/04/16 Вск 01:02:21 #76 №725028 
чёто типо ГУЧА ГЕЙМС, или хуй нает. По идее это фамилия того типа, и он делал какуюто пошаговую хуету, но в логике не бум бум, и только можно было перемещаться по формочками
Аноним 24/04/16 Вск 01:02:26 #77 №725029 
>>725023
Счастливое детство. Я с Borland C++ Builder начинал.
Аноним 24/04/16 Вск 01:04:07 #78 №725032 
>>725006
>Мнение человека не ограниченого каким-то одним языком, знающего, что не стоит использовать то, без чего можно обойтись
Пофиксил тебя.
>даже гцц на плюсах,
Вруша. Он на их смеси.
>а ты всё пиши драйвера для ком порта.
Будто что-то плохое.
Аноним 24/04/16 Вск 01:07:36 #79 №725034 
>>725032
вот как бывает, вчера ты мне пишешь что я толщу, а сегодня отвечаешь на толщу, и это в день рождения моей дочери.
Аноним 24/04/16 Вск 01:12:45 #80 №725037 
>>725034
Просто начался новый день. Лимит на толстоту восстановлен.
Аноним 24/04/16 Вск 01:19:21 #81 №725041 
>>725032
>>даже гцц на плюсах,
>Он на их смеси.
Так все верно же, сишечка - подмножество плюсов.
Аноним 24/04/16 Вск 01:20:47 #82 №725043 
>>725041
точн, особенно каст
Аноним 24/04/16 Вск 01:21:16 #83 №725044 
>>725041
>Так все верно же, сишечка - подмножество плюсов.
Что ж ты делаешь содомит! Люто проиграл.
Аноним 24/04/16 Вск 01:23:44 #84 №725049 
от этих разговоров у меня ковбой мальборо, и харлей, и фильм того года, такое же ламповое старьё, как и сейчас тут спор
Аноним 24/04/16 Вск 01:25:45 #85 №725050 
>>725043
Угу. Керниган вместе с Ритчи грязно воспользовались трудами Страуструпа, взяв все наиболее необходимое для языка и сделали свой аналог паскаля. Эдакий учебный язык, чтобы потом можно было перекатиться на кресты.
Аноним 24/04/16 Вск 01:32:38 #86 №725054 
>>725050
Всё правильно. Только не стоит множить несправедливость. Керниган к созданию языка руку не приложил, он в основном мануал писал, и в авторах книги он первый именно потому, что писал больше, чем Ричи.
Аноним 24/04/16 Вск 01:34:40 #87 №725056 
>>725043
Что-нибудь еще вспомнишь?
>>725044
>>725050
Пусть будет "плюсы - надмножество сишечки", если байтобогам так печет, суть та же.
>>725050
>все наиболее необходимое
>нет шаблонов
>нет динамического полиморфизма
Come on, Ritchie, are you even trying?
Аноним 24/04/16 Вск 01:39:42 #88 №725059 
>>725054
Вот только не стоит забывать еще и о Кене Томпсоне. Так как он был самым омежным в лаборатории, его травили и заставили скопипастить кресты. В это время Керниган писал документацию, а Ритчи из жалости изредка помогал Кену и носил видеопленки с порнухой, которую он вместе с Керниганом смотрели на новеньком PDP.
Аноним 24/04/16 Вск 01:40:36 #89 №725060 
>>725059
>видеопленки
>перфокарты
быстрофикс
Аноним 24/04/16 Вск 06:27:42 #90 №725129 

>>725004

Затем, что:

1. Раст делали на замену крестам, а не Си.
2. У него синтаксис не предназначен для читания и писания человеком.
3. При одинаковом дизайне программа на раст тормозит по сравнению с Си и крестами.
4. Раст не может в архитектуры, отличные от хай86 и арм.
5. Гугл не позволит расту конкурировать с его замечательным го, а в нише Си он не нужен, ибо с выразительностью все еще хуже, чем у Си, бежопашношть кончается на первом же unsafe, а низкоуровневый системный код состоит из unsafe чуть менее , чем полностью..
Аноним 25/04/16 Пнд 14:51:09 #91 №726415 
Господи, блядь. Как можно посредством побитовых операций поменять местами две группы бит, определённых по старшему разряду? Сделал это просто через обычные операции с массивом, но меня послали нахуй, нужно обязательно побитовые.
Аноним 25/04/16 Пнд 14:54:16 #92 №726418 
>>726415
Я тебя не понял. Что ты подразумеваешь под "две группы бит, определенных по старшему разряду"? Пример приведи.
Аноним 25/04/16 Пнд 14:59:43 #93 №726424 
>>726415
Если тебе допустим надо поменять в одном байте восемь старших бита и восемь младших:
val = ((val & 0xFF) << 8) + (val >> 8)
Как-то так.
Аноним 25/04/16 Пнд 14:59:58 #94 №726425 
>>726418
Есть какое-нибудь число, нужно поменять две группы бит. Например:
00000011
--++--++
Тут плюсами отмечена группа 00 и группа 11, номера старших разрядовсправа налево - 5 и 1 соответственно. Нужно эти группы поменять местами, в этом суть.
Аноним 25/04/16 Пнд 15:04:54 #95 №726430 
>>726424
Ага, понял, что тут произошло. Но каким образом докрутить начало операций с определенного бита, а не над целым числом?
Аноним 25/04/16 Пнд 15:17:05 #96 №726441 
>>726430
8 в том примере — оффсет. Задавай нужны тебе оффсет ( в твоем примере 4 и тереби биты посредством разных битовых операций.
В твоем примере я бы попробовал сделать так:
val = 00^^0011
val = (val << 4) | (val ^ val)
Здесь при val << 4 единицы встанут на позиции нужных тебе нулей а при val ^ val, по свойству исключающего или получишь ноль. Затем слагаешь. Ну это немного корявый способ.
Аноним 25/04/16 Пнд 15:22:58 #97 №726455 
>>726441
Если допустим будет val = 01^^0011, можно так сделать:
val = ((01000011 & 00000011) << 4).
Уже прямее. Вообще, есть множество способов.
Аноним 25/04/16 Пнд 15:24:35 #98 №726458 
>>726455
Если будет val = 011100^^:
val = ((01110000 & 00110000) >> 4)
Аноним 25/04/16 Пнд 15:25:15 #99 №726459 
Господа, как грамотно скастовать байт в структуру?
Допустим есть структура, в которой 8 однобитовых свойств, есть байт данных, который нужно разбить на эти 8 свойств.
Через юнион?
Аноним 25/04/16 Пнд 15:29:00 #100 №726464 
>>726458
>>726455
Хотя здесь ошибка. Теряется бит. Тогда:
val = (01000011 & 01000000) | ((01000011 & 00000011) << 4).
val = (01110000 & 01000000) | ((01110000 & 00110000) >> 4)

>>726459
Битовые поля или по принципу флагов действуй. Определи Свойства константами вида: ONE = 0x01, TWO = 0x02, THREE = 0x04 и т.д и логически суммируй нужные тебе флаги:
val |= ONE | TWO и т.д.
Аноним 25/04/16 Пнд 15:32:23 #101 №726470 
>>726464
>по принципу флагов действуй
В начале так и сделал.
Но потом захотелось ШТОБЫ КРАСИВО было, и решил зафигачить структуру с битовыми полями.
Аноним 25/04/16 Пнд 15:37:03 #102 №726482 
>>726470
>Но потом захотелось ШТОБЫ КРАСИВО было,
Флаги используются повсеместно. Это нормальная практика для свойств. А битовые поля используют намного реже. Так что не выделывайся.
Аноним 25/04/16 Пнд 15:42:08 #103 №726490 
>>726441
Подожди, а что за val = 00^^0011? ^^ - что за оператор такой?
Аноним 25/04/16 Пнд 15:42:41 #104 №726492 
>>726490
Это место с которым надо поменяться местами единицам.
Аноним 25/04/16 Пнд 15:49:14 #105 №726498 
>>724849
там адовый код с тридцатилетней историей, хуй они его откроют, ибо банально стыдно будет, это тебе не дотнет относительно недавно написанный
Аноним 25/04/16 Пнд 15:50:44 #106 №726500 
>>726498
Вон у GCC код уже почти 30 лет открыт код. И ничего! Не стыдятся же!
Аноним 25/04/16 Пнд 15:52:47 #107 №726503 
>>725021
дельфи любили в поссовке, китае, части европы тк это наследие европейской школы программирования все же по сути
и дельфи здесь занял, по сути, нишу вижуалбейсика, в остальном мире на нем лабали
Аноним 25/04/16 Пнд 16:00:28 #108 №726508 
>>726459
если у тебя в маске только однобитные флаги, то нах те структура не нужна, делают шестнадцатеричными или восьмеричными константами, так удобней
а так, да, делают структуры с битовыми полями
Аноним 25/04/16 Пнд 16:05:01 #109 №726513 
>>726500
а нету смысла открывать исходники майкрософтофского с++ компилера
открыать сорцы дотнета - есть смысл, тк это открывает возможности compiler as infrastructure, roslyn, в общем, по сути те же ништяки что и связка clang-llvm предлагает, но в дотнете
а майкрософтофский компилер с++ сделан по старой технике (как и gcc), так чтож смысла нет
Аноним 25/04/16 Пнд 16:15:12 #110 №726518 
>>726508
В каких тогда случаях лучше использовать стуктуры с битовыми полями вместо флагов?
Аноним 25/04/16 Пнд 16:37:17 #111 №726545 
>>726464
Честно пытался разобраться, но это пиздец. Ты не мог бы в общем случае написать? Есть двоичное число, есть номера старших разрядов, есть размер групп бит, которые надо поменять местами. Как всё это в кучу собрать?
Вот то, что я делал с массивами - просто и понятно, но нужно через, блядь, побитовые операции.
http://pastebin.com/AdWy6gzN
Аноним 25/04/16 Пнд 16:51:33 #112 №726555 
>>726470
> зафигачить структуру с битовыми полями
Имей в виду, что порядок битов и их выравнивание в битфилде не определены (то есть, если у тебя битфилд на 6 полей по 1 биту, то начнется ли он со старшего бита байта, или с младшего, или со второго - определяет компилятор). Т.е., если тебе внутри собственной программы таскать туда-сюда битфилд - это ок, но если ты хочешь портабельно сохранять в файлы или передавать по сети, лучше пользуйся побитовыми операторами, там у тебя будет только проблема с endianess.
Аноним 25/04/16 Пнд 17:14:49 #113 №726583 
>>726545
Не читал задачи, но надеюсь, что понял правильно.
У тебя есть исходное число source, два офсета групп offset1, offset2 (считая с нуля справа) и размер обеих групп size. Например, наше число nAAnnBBn, где AA и BB твои группы, а n - какие-то биты, которые трогать не нужно. В нашем примере offset1 = 5, offset2 = 1, size = 2.

Генерируем маску с size единичек:
mask = (1 << size) - 1; // (2 << 1) - 1 = 4 - 1 = 3 = 00000011

Выделяем группы в отдельные переменные (, ):
group1 = (source >> offset1) & mask; // (nAAnnBBn >> 5) & 00000011 = 000000AA
group2 = (source >> offset2) & mask; // (nAAnnBBn >> 1) & 00000011 = 000000BB

И сдвигаем их обратно их новые места:
group1 <<= offset2; // 000000AA << 1 = 00000AA0
group2 <<= offset1; // 000000BB << 5 = 0BB00000

Собираем маску для исходного числа таким образом, чтобы там, где были группы битов, стояли единички, а в остальных разрядах нули:
source_mask = ((mask << offset1) | (mask << offset2)); // ((00000011 << 5) | (00000011 << 1)) = 01100110

И инвертируем её (теперь на месте групп будут нули, а в остальных разрядах единицы):
source_mask = ~source_mask; // ~01100110 = 10011001

И обнуляем обе группы битов, оставляя остальные биты нетронутыми:
source_masked = source & source_mask; // nAAnnBBn & 10011001 = n00nn00n

И собираем число из получившихся частей:
result = source_masked | group1 | group2; // n00nn00n | 00000AA0 | 0BB00000 = nBBnnAA0

Это все можно записать гораздо меньшим числом выражений, но надеюсь, что так тебе будет понятнее. Не забудь, что оперировать нужно беззнаковыми числами.
Аноним 25/04/16 Пнд 17:16:33 #114 №726585 
>>726518
Когда у тебя поля не однобитовые и для тесной запаковки.
Допустим есть структура в 32 бита. где 8 бит выделяется под одно, 12 бит под другое, и еще по 6 бит под третье и четвертое.
Аноним 25/04/16 Пнд 17:18:33 #115 №726587 
>>726545
Но ведь >>, <<, |, ^, ~, & — битовые операции! Что тебе не нравится?
Аноним 25/04/16 Пнд 17:22:00 #116 №726589 
>>726585
И да. Не надо забывать про выравнивание данных. Твоя структура 12 бит будет весить как машинное слово, если ты не задашь иначе. В С11 для этого есть _Alignas.
Аноним 25/04/16 Пнд 17:35:28 #117 №726599 
>>726589
А ты с упаковкой не путаешь? _Alignas вроде на размер не влияет, только на размещение в памяти.
Аноним 25/04/16 Пнд 17:48:18 #118 №726611 
14615956989220.png
>>726599
Нет. Не путаю. _Alignas на выравнивание влияет.
Аноним 25/04/16 Пнд 17:50:12 #119 №726616 
>>726611
А ннет ! Я сглупил! Действительно! Я же про выравнивание говорю! А надо про упаковку! Прошу прощения.
Аноним 25/04/16 Пнд 18:51:03 #120 №726688 
>>726616
Там вроде в плюсах по-другому, но не уверен. А у нас есть нестандартная, но очень широко поддерживаемая #pragma pack.
Аноним 25/04/16 Пнд 19:03:30 #121 №726701 
>>726583
Ух, спасибо тебе большое, разъяснил. Теперь я наконец-то осилил происходящее. Спасибо!
Аноним 25/04/16 Пнд 19:14:16 #122 №726719 
Есть ли способ выставлять флаги оптимизаций в коде? как например коннектить либы через #pragma comment(lib, ..)

Знаю что это очень даунский вопрос и олимпиады для хуесосов а олимпиадный тред мёртв, но иначе я не вижу способа включить оптимизацию компилятора если в жюри сидит хуесос, а паскальмартыхан сидит и угарает с меня.
Аноним 25/04/16 Пнд 19:32:40 #123 №726739 
>>726719
Можно. Но зависит от компилятора. Для GCC есть __attribute__((optimize("smth"))) и #pragma GCC optimize, для Visual Studio есть #pragma optimize.
Аноним 25/04/16 Пнд 19:39:01 #124 №726752 
>>726719
> олимпиады для хуесосов
Если ты знаешь это, зачем участвуешь? Или ты нам так признаешься, что любишь хуи сосать?
Никогда не понял этих олимпиад. Зачем они нужны?
Аноним 25/04/16 Пнд 19:43:35 #125 №726764 
>>726719
Наверное есть, но прямо так скажу, писать олимпиадки на C - довольно печальное занятие. Можно нечаянно и ногу отстрелить, и ебаться потом, потому что собственный инструмент ставит палки в колёса и позволяет компилировать всякий дырявый говнокод. Паскальмартыхану в этом плане полегче будет.
Аноним 25/04/16 Пнд 19:45:43 #126 №726770 
>>726764
>Наверное есть, но прямо так скажу, писать олимпиадки на C - довольно печальное занятие.
Отстрелишь, если основ не знаешь. Ну там проебаться можно с преобразованиями числа, ибо допустим 1 / 2 = 0 а 1.0 / 2.0 = 0.5 или если файлы читать не умеешь. Вот это вот все.
Аноним 25/04/16 Пнд 19:50:56 #127 №726785 
>>726770
Даже со знанием основ можно отстрелить. Я бы не был таким самоуверенным. Сам по молодости игрался в олимпиадки на няшной, и временами возникали проблемы из-за самого инструмента.
Есть и другая сторона - на C нету ничего подобного STL. На серьезных олимпиадках из-за этого вполне можно вылететь в трубу.
Поэтому серьёзные дяди кодят олимпиадки на C++ или Java. Последняя даже легче будет, посколько весьма строга к мартышке, которая сидит перед ящиком и не позволяет делать слишком очевидные и глупые баги.
Аноним 25/04/16 Пнд 19:56:08 #128 №726799 
>>726764
С в отличие от паскаля я вроде как хорошо знаю, и писал на нёй ирлманяпроекты, в отличие от второго.
>>726752
Можно и так сказать. Выбора у меня тащемта не много, я клал хуй на пары по причине их бесполезности, и теперь страдаю.
>>726739
Спасибо.
Аноним 25/04/16 Пнд 19:58:43 #129 №726804 
>>726785
Хз что у тебя там за олимпиадки такие, где прям так нужен STL. У меня локальное говно, где ничего сложнее длинной арифметики и графов нету судя по темам нету.
Аноним 25/04/16 Пнд 20:02:05 #130 №726811 
>>726785
>Есть и другая сторона - на C нету ничего подобного STL.
Алгоритмы знать надо! Привыкнуть к своим list.reverse или list.sort() и не знают потом ни черта. А вообще, первое что лезет в голову, так это glib. Там кажется есть множество всего такого. Но это под линукс.
>Последняя даже легче будет, посколько весьма строга к мартышке,
Я бы по-другому сказал. Она не строга к мартышке. Она просто убирает за ним дерьмо. А в Си нагадил — убери.
>позволяет делать слишком очевидные и глупые баги.
Это да. Бывает И зависит не только от квалификации, но и от настроения и фазы луны. Впрочем, чем больше пишешь, тем меньше случайных ошибок делаешь.
Этого >>726804 двачаю. Сколько не видел олимпиадок, так там простые задания, чуть ли для домохозяек. Зачем там коллекции? Не понимат.
Аноним 25/04/16 Пнд 20:10:19 #131 №726832 
>>726811
>Алгоритмы знать надо! Привыкнуть к своим list.reverse или list.sort() и не знают потом ни черта.
Писать по сто раз рутинные вещи заебывает. А так кто ж им виноват, что они не знают, что за алгоритм у них в библиотечной сортировочке?
>А в Си нагадил — убери.
Вот этим на олимпиадке нет времени заниматься. Как и оформлять читабельный код. Дома можешь хоть узадрачиваться, а тут изволь всё сделать за ограниченное время.
>Сколько не видел олимпиадок, так там простые задания, чуть ли для домохозяек. Зачем там коллекции? Не понимат.
Ох, что ж я сразу не понял, что спорю с профи. Ты поди все задачи ACM левой пяткой на брейнфаке решаешь?
Аноним 25/04/16 Пнд 20:14:25 #132 №726844 
>>726832
>Вот этим на олимпиадке нет времени заниматься. Как и оформлять читабельный код. Дома можешь хоть узадрачиваться, а тут изволь всё сделать за ограниченное время.
Только на рашкинских птушных олимпиадах за это ещё "субъективно" могут накинуть баллов, лел.
>Ты поди все задачи ACM левой пяткой на брейнфаке решаешь?
Не переводи тему, ясен хуй тут другой уровень задач.
Аноним 25/04/16 Пнд 20:15:13 #133 №726848 
>>726832
>Ох, что ж я сразу не понял, что спорю с профи.
Сарказм не уместен. Если ты не можешь в простую логику, это не значит, что и другие не могут.
Аноним 25/04/16 Пнд 20:17:49 #134 №726856 
>>726844
>ясен хуй тут другой уровень задач
Это нормальный уровень задач. А то что там в школах и прочих ПТУ - сраное говно, на это НЕ нужно равняться.
Аноним 25/04/16 Пнд 21:58:35 #135 №726954 
>>726856
>олимпиады
>серьезные задачи
Прямо на ноль поделил.
Аноним 25/04/16 Пнд 22:13:07 #136 №726964 
>>726954
а ты решишь хотя бы одну из этих "несерьезных" задач, лолка?
Аноним 25/04/16 Пнд 22:18:07 #137 №726973 
>>726964
Олимпиадник порвался? Сделай хотя бы один более-менее серьзный проект и ты поймешь что олимпиады лишь забавы для неосиляторов.
Аноним 25/04/16 Пнд 22:20:24 #138 №726974 
>>726973
>порвался
ясно, залётный из /b/
>Сделай хотя бы один более-менее серьзный проект и ты поймешь что олимпиады лишь забавы для неосиляторов.
ну толсто же.
одно другому не мешает.
Аноним 25/04/16 Пнд 22:21:04 #139 №726977 
>>726964
А ты построишь пирамиду из огромных каменных блоков вручную?
Аноним 25/04/16 Пнд 22:24:45 #140 №726983 
>>726974
>ясно, залётный из /b/
Чини детектор.
>одно другому не мешает.
>жалуется, что нет STL и из-за этого очень сложно ему олимпиадные задачки решать, да и на Си писать сложно
А ведь любой нормальный программист должен уметь реализовывать любые алгоритмы, также как и знать Си, не допуская при этом глупых ошибок.
Аноним 25/04/16 Пнд 22:26:42 #141 №726985 
>>726974
>одно другому не мешает.
Ну как не мешает. Это немного разные области - в одной ты спокойно сидишь и обдумываешь как чо делать, в другой ты как ебаная макака убегающая от охотника пытаешься успеть высрать зазубренные алгоритмы до дедлайна в пару часов. А когда области развития не пересекаются - они друг друга лочат как 2 треда 1 несчастную переменную.

Олимпиадное программирование - это как спорт - старания и превозмогания нужно дохуя, а толку - нихуя. Ну да, как и ирл в спорте в шоколаде только самый верхний эшелон, который составляет от силы 0,1%.
Аноним 25/04/16 Пнд 22:29:24 #142 №726988 
>>726985
Неистово двачаю!
Аноним 25/04/16 Пнд 22:36:22 #143 №726993 
Как семёна разорвало.
Ты читать умеешь? Си неудобен на олимпиадках, но если ты такой любитель жрать кактусы, то пожалуйста. Нормальный человек же выбирает наиболее подходящий к задаче инструмент.
По поводу дедлайнов, они присутствуют и на работе, вечно задрачивать не получится.
И да, одно другому таки не мешает, можно спокойно работать, а раз в месяц поиграть на каком-нибудь кф. Тебя олимпиадники покусали что ли?
Плюс архивы с задачами могут быть хорошим подспорьем для новичка, чтобы закрепить базу. Сразу он не пойдет ебашить крутые проекты, а вот поиграться с задачками - другое дело. Главное без фанатизма.
Аноним 25/04/16 Пнд 22:42:55 #144 №726997 
>>726993
Ты реально какое-то животное. Когда ты участвуешь на каком нибудь ICPC и у тебя есть выбор (и самое главное задачи - не найти точку в прямоугольнике), то да - нужен яп высокого уровня.

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

А ещё я не знаю что сказать когда ты предлагаешь использовать плюсы с в три раза большим кол-вом заёбов и тонкостей.
Аноним 25/04/16 Пнд 22:48:37 #145 №727000 
>>726993
>Как семёна разорвало.
Лал. Даже не хочет признавать что его хуесосят несколько человек.
>Нормальный человек же выбирает наиболее подходящий к задаче инструмент.
Ты как определять удлбность инструмента собрался? Кому-то пожет и на ассемблере удобнее многие решать.
>По поводу дедлайнов, они присутствуют и на работе, вечно задрачивать не получится.
На работе, у тебя есть возможность, чтобы сделать нормально и красиво полезные вещи, а не какую-то никому не нужную кроме твоего ЧСВ хуету..
>Плюс архивы с задачами могут быть хорошим подспорьем для новичка, чтобы закрепить базу.
Для новичка лучше книжки читать с алгоритмами и описанием разных техник программирования + документация по инструментам, чтобы не задавал вопросов об общении с компилятором.
sageАноним 25/04/16 Пнд 22:50:05 #146 №727004 
>>726997
Ммм, переход на личности :3
В мое время в школо-быдло-олимпиадках можно было выбирать как минимум из 4 языков.
>Если ты сумеешь прострелить себе ногу на такой хуйне - я даже не знаю что сказать.
Вас послушать, дак тут каждый школьник непризнанный гений, и может без единой ошибки написать на асме ядро ОС.
Если ты такой красавец, что можешь сразу ебашить ансейв код без багов и прочих переполняющихся буферов - молодец. Но с чего ты решил, что другие умеют то же самое? Особенно в наше время бума всяких code monkey.
Нет, им чисто добрый совет даешь, а они визжат и посылают. Первокурсники ебаные.
Аноним 25/04/16 Пнд 22:55:35 #147 №727008 
>>727004
>асме ядро ОС.
> задача посортировать и красиво вывести дроби
>найти точку в прямоугольнике
Сука, и как мне не переходить на личности? Ты серьёзно ебанутый, или упарываешь что-то?
Аноним 25/04/16 Пнд 22:57:47 #148 №727010 
>>727004
>Ммм, переход на личности :3
А сам-то? Детектишь тут во всех залетных и семенов.
>Вас послушать, дак тут каждый школьник непризнанный гений, и может без единой ошибки написать на асме ядро ОС.
Ты на олимпиадах ОСи пишешь? Ты решаешь там абстрактные задачи, которые вообще никак не связаны с технической составляющей.
>чего ты решил, что другие умеют то же самое?
А чего ты, не зная инструмента, советуешь кому-то не пользоваться инструментам, потому что лично ТЫ, не можешь на нем без ошибок писать даже элементарные вещи? Ты небось еще после каждой второй написанной строчки компилируешь и правишь ошибки?
>Особенно в наше время бума всяких code monkey.
Ты предлагаешь поощрать это дело?
>Нет, им чисто добрый совет даешь, а они визжат и посылают.
Ты говорил о своих субъективных ощущениях от языка. В случае того, кому ты это говорил, ему можно на чем угодно писать. Вероятность ошибок минимальна при знании языка и алгоритма. Но ты посоветовал ему не писать на паскале, который он знает плохо.
>Первокурсники ебаные
Детектор уже почини. Заебал! Третий раз уже.
sageАноним 25/04/16 Пнд 23:21:23 #149 №727032 
>>727010
>>727008
>ты ты ты ты ты ТЫЫЫЫЫ
Ясно.
Вообще не понимаю, чего вы так агритесь на спортивное программирование. Ну решают люди абстрактные задачки, и что? Давайте еще поливать говном математику, дескать она оторвана от жизни, ебучие математики что-то там решают, возятся, доказывают, уххх, мне на сосаче сказали это нинужна!
Вас лично никто не заставляет решать "найти точку в прямоугольнике".
Нет же, надо устраивать демагогию на пустом месте, лол.
>Ты предлагаешь поощрать это дело?
Программирование на строгом к ошибкам языке помогает как раз приучить новичков не делать глупостей. Думаешь, школьник с радостью побежит учить все скучные анальные секреты/стандарты/ твоей любимой сишки? Ага, щасс.
Пиздец, вы байтослесари какие-то, честное слово.
>Ты говорил о своих субъективных ощущениях от языка.
Запизделся уже. Очевидно, что на языках типа C/C++ гораздо легче наделать ошибок, будь ты хоть сто пядей во лбу. Никто не застрахован, человеческий фактор и всё такое. Но нет же
>Вероятность ошибок минимальна при знании языка и алгоритма.
Окей, выучи брейнфак и пиши на нем с МИНИМАЛЬНОЙ ВЕРОЯТНОСТЬЮ ОШИБОК. Инструмент ведь плохим не бывает априори, это всё руки кривые.
Аноним 25/04/16 Пнд 23:22:13 #150 №727034 
14616157335930.png
>>725059
>смотрели на новеньком PDP
Сцука ржу как ебанутый.
Аноним 25/04/16 Пнд 23:46:46 #151 №727063 
>>727032
>думает что стандарты свойственны только для Си
>думает, что если спортивный быдлокодинг поливают говном те, кто не знает математику
>считает, что более высокоуровневые языки строги к ошибкам
>знание работы компьютера не нужно новичку.
Короче съеби. Просто съеби. С такими даунами даже спорить не хочется.
sageАноним 25/04/16 Пнд 23:48:22 #152 №727065 
>>727063
Да, да, ты победил, а я съебу. До свидания, слесари.
Аноним 26/04/16 Втр 00:07:27 #153 №727081 
А вообще, спортивное программирование плохое потому, что не дает никаких полезных навыков кроме скорости написания элементарных задач, но при этом повышают ЧСВ обезьянки до неведомых высот. Лично мое мнение, что любой программист, которому приходилось создавать собственные реализации как простых (решето Эратосфена, алгоритм Эвклида, итерационный алгоритм Герона, половину сортировок, простейшие методы поиска и т.д) так и сложных алгоритмов (в том числе криптографических) и проведшего тестирование и оптимизацию этих алгоритмов, смело может опустить любого олимпиадника, так как эти самые олимпиадники решают конкретные задачи, но не видят картины в целом, что показал нам этот >>726832 товарищ, у которого возникают сложности с простейшими алгоритмами. В тоже время программист описанный ранее, сможет решить любую поставленную задачу за приемлемые сроки и он также сможет помимо простого решения, также оптимизировать саму программу. Вот так вотъ.
Аноним 26/04/16 Втр 00:11:31 #154 №727082 
>>727063
а че олимпиадки чем плохи-то, ну задрачивают люди классические алгоритмы, че плохого-то, не думаю что они быдлокодерами из-за этого становятся.
Аноним 26/04/16 Втр 00:14:14 #155 №727083 
>>727081
ну про элементарные задачи ты слишком хуйню спизданул, задачи с петрозаводских сборов порешай, гарантирую что ты сольешься.
Аноним 26/04/16 Втр 00:20:17 #156 №727085 
>>727083
Стадии:
1) Тебе дали задачу;
2) Ты обдумываешь варианты ее решения;
3) Выбрав наиболее подходящее решение, ты реализовываешь его.
Вот такой порядок действий на мой взгляд вполне справедлив. Разве что только если тебе не дадут задачу, для решения которой тебе требуются какие-либо узкоспециализированные знания в области математики и тебе надо так сходу решить не зная матчасти. Поправь меня если что-то не так. И дай пожалуй ссылку на эти задачи. Я просто множество задач олимпиадных видел, и мне они казались достаточно простыми.
Аноним 26/04/16 Втр 00:31:37 #157 №727090 
>>727085
ты из далека заходишь, ты описал решение любой задачи в любой сфере.
http://acm.timus.ru/problemset.aspx?space=1&tag=ptz
вот шерсти.
не все олимпиадки, это контесты на кодфорсе во втором дивизионе.
Аноним 26/04/16 Втр 00:40:48 #158 №727092 
>>727085
Решай.
http://rghost.net/7knWyYw9S
Аноним 26/04/16 Втр 00:50:20 #159 №727099 
>>727092
Симулятор интерактивного оконного менеджера? Хм. Только недавно читал про иксы и прокрастинирую собрать их. Не вижу чего-то сложного. Нужно хранить состояния да обрабатывать ошибки. Всего-то! Как допрокрастинирую, может возьмусь, хотя вижу мало интересного, честно говоря.
Аноним 26/04/16 Втр 00:51:17 #160 №727101 
>>727090
А за это благодарю. будет что на досуге порешать.
Аноним 26/04/16 Втр 00:52:42 #161 №727103 
>>727101
>спортивное программирование говно яскозал!!!!11
>будет что на досуге порешать
Аноним 26/04/16 Втр 00:57:27 #162 №727107 
>>727103
Ну маааам! Мне делать нечего! Шахматы надоели, а задач не завезли! Вот и маюсь.
Ну я имел ввиду, что оно плохо, как единственный род занятий. Я в том смысле, что если олимпиадник решает такие задачи, но не имеет практики реального программирования, то он ни на что не годен. Однако так как он получил слишком высокое ЧСВ из-за них, оно плохое для него. То что в той ссылке, я расцениваю как аналог решения сканвордов или партейки другой в шахматы.
Аноним 26/04/16 Втр 01:01:01 #163 №727114 
>>727107
95% олимпиадников после университетсва идут точно так же работать, или ты думаешь, что им просто так деньги за их чсв платят потом?
Аноним 26/04/16 Втр 01:07:08 #164 №727118 
>>727114
>или ты думаешь, что им просто так деньги за их чсв платят потом?
Знаешь. Ты поднял такую спорную тему... А все ли программисты заслуженно получают деньги за свою "работу"? Мне не очень хочется по этой теме ходить, так что останемся при своих мнениях, так как бессмысленным будет говорить про это. Добра тебе.
Аноним 26/04/16 Втр 01:25:27 #165 №727129 
>>727118
ну обычная тема, если платят, то значит решают поставленную задачу весьма успешно, если взяли работать, значит убедились в способности выполнять эту задачу.
Аноним 26/04/16 Втр 01:46:19 #166 №727133 
>>727107
Лол. Сначала кудахчешь, что спортивная прога никак не совместима с "обычным" программированием, и тут выясняется обратное.
Очередной толстый из /b/ короче, которому лишь бы доебаться да устроить срач. Ну а что, свинья грязи везде найдёт.
Аноним 26/04/16 Втр 02:03:01 #167 №727144 
14616253810380.png
>>727085
>Стадии:
>1) Тебе дали задачу;
>2) Ты обдумываешь варианты ее решения;
...и все они говно, работающие по примерным оценкам миллиарды лет чистого времени. Твои действия?
>Разве что только если тебе не дадут задачу, для решения которой тебе требуются какие-либо узкоспециализированные знания в области математики и тебе надо так сходу решить не зная матчасти.
Во-первых, если у тебя нет узкоспециализированных знаний, то в чем заключается твоя олимпиадность? Думать быстрее? В таком случае, конечно, обычная макака тоже рано или поздно справится. Во-вторых, без этих знаний ты не всегда даже сможешь понять, нужны ли тебе тут такие знания, просто подумаешь, что ты тупой дебил.
Аноним 26/04/16 Втр 02:12:04 #168 №727150 
>>727144
двочую
Аноним 26/04/16 Втр 02:13:35 #169 №727152 
>>727144
А вообще по-хорошему сложная задача сначала изучается теоретически, придумывается более хороший алгоритм а то и вообще хоть какой-нибудь, а потом уже спускают с цепи макак. И олимпиаднику полезнее мутировать именно в CS-теоретика, на худой конец исследователя-прикладника, нежели в дженерик кодера.
Аноним 26/04/16 Втр 03:01:00 #170 №727162 
>>727152
>И олимпиаднику полезнее мутировать именно в CS-теоретика
Ага ага, учитывая что наука и олимпиадки мартышек практически никак не пересекаются.
Аноним 26/04/16 Втр 03:23:50 #171 №727168 
Вчера был вечер охуительных историй о происхождении языка Си. Сегодня ­— охуительные истории о пользе олимпиад для прикладного программиста. А завтра что будет? О вреде чтения официальной документации и призыва к чтению мануалов от васяна? Откуда вы блять лезете? Или слоупочные тролли очнулись после зимней спячки?
Аноним 26/04/16 Втр 07:03:50 #172 №727235 
Сосоны, у меня проблема. Написал сервер, а он нихуя не работает. Т.е. пишет, что подключился с 0.0.0.0, создает папку и нихуя. Пытаюсь подключиться через nc, а этот пидор пидоряет меня самого.
В итоге, ноут не нагружается даже от perl -e '`nc localhost 35335`;'
И я немного прихуел от такого расклада. Компилируется только предупреждая, что main вернет мне int, а так все спокойно, без ошибок. http://pastebin.com/Yym5TsMD
Аноним 26/04/16 Втр 07:04:39 #173 №727236 
>>727235
>perl -e '`nc localhost 35335` x 3000;'
простите ради пардона
sageАноним 26/04/16 Втр 07:24:46 #174 №727254 
>>727168
>О вреде чтения официальной документации и призыва к чтению мануалов от васяна?
Как показал опыт, официальные мануалы от майкрософт хуже мануалов "от васяна".
Аноним 26/04/16 Втр 13:41:57 #175 №727451 
>>727254
Ну охуеть теперь. Что дальше то будет?

>>727235
Вот убивал бы за такой код! Где проверки на ошибки, мудила? Почему у тебя на 35 строке листен идет в условии а все остальное выполняется вне зависимости от условия? Нахуя тебе треды, если даже простой сервер создать не можешь, не говоря о неблокирующих сокетах?
>sleep для потоков
За это я бы тебе в ебало дал. Забудь про потоки сука! Программировать сначала последовательно научись.
>фиксированные размеры буферов
>не проверяет переполнения буферов
>преобразовывает уже из одного типа в тот же тип
>struct stat st = {0};
Сука, съеби отсюда. Вообще забудь о программировании! Не вздумай даже хеллоуворлды писать. Вдруг еще ширус случайно создашь!
А если серьезно, прочитай пару книжек по Си. Начинай с K&R.
Аноним 26/04/16 Втр 13:46:44 #176 №727452 
>>727254
Как и всё остальное.
Аноним 26/04/16 Втр 14:04:01 #177 №727477 
>>727235
>Компилируется только предупреждая, что main вернет мне int, а так все спокойно, без ошибок
Хотя постой! Ты еще недостаточно обоссан. Запусти компилятор с флагами -Wall -Wextra -Wpedantic. Пусть и он на тебя поссыт.
Аноним 26/04/16 Втр 15:07:57 #178 №727550 
>>727451
А что тебе в struct stat не понравилось? Ну хочется человеку ее инициализировать, вреда от этого не будет.
Аноним 26/04/16 Втр 15:09:56 #179 №727554 
>>727550
Ну ладно. Это еще нормально, хоть и не имеет смысла в его случае. Особенно по сравнению с другими ошибками...
Аноним 26/04/16 Втр 17:49:46 #180 №727681 
VSоблядки! Как вы живете с такой парашей? Сейчас допустил ошибку в CreateSolidBrush (Забыл указать RGB в (0xFF, 0xFF, 0xFF)) и знаете что мне оно выдало? Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. Ну это просто пиздец! Полчаса ебался с нахождением ошибки. Как ей вообще возможно пользоваться с такими охуительными ошибками?
Аноним 26/04/16 Втр 18:01:44 #181 №727693 
>>727681
А при чём тут VS? Рантайм, система, компилятор - вообще всё что угодно, только при чём здесь IDE-то?
Аноним 26/04/16 Втр 18:02:58 #182 №727695 
>>727451
Дай угадаю, тебе лет 30?
Аноним 26/04/16 Втр 18:03:11 #183 №727696 
14616829912240.png
>>727681
Зато в следующий раз будешь писать без ошибок.
Аноним 26/04/16 Втр 18:03:55 #184 №727697 
>>727693
Почему VS не дает по ебалу за неправильный вызов функции?
>>727696
В следующий раз не буду тупить и буду сразу расчехлять отладчик.
Аноним 26/04/16 Втр 18:05:32 #185 №727701 
>>727697
>Почему VS не дает по ебалу за неправильный вызов функции?
Уточню: "Почему инструментарий в VS по-умолчанию не дает по ебалу за неправильный вызов функции?"
Аноним 26/04/16 Втр 18:10:32 #186 №727704 
14616834322420.jpg
>>727701
Аноним 26/04/16 Втр 18:12:46 #187 №727705 
>>727704
Я понял. Это такая система поддержки для разработчика. Разработчику предоставляют возможность работать в дружественной среде разработки, где ему даже дадут возможность поебаться.
Аноним 26/04/16 Втр 18:15:13 #188 №727707 
>>727701
А с хуяли ему тебе что-то пояснять? Функция принимает на вход COLORREF который определён как typedef DWORD COLORREF; - ни IDE, ни компилятор в душе не ебут в чём тут может быть ошибка (тем более си слаботипизирован, ты туда без проблем и void* мог запихать - с точки зрения синтаксиса всё ок).
Аноним 26/04/16 Втр 18:49:04 #189 №727737 
>>727695
Не угадал. Зачем тебе знать это?
Аноним 26/04/16 Втр 19:07:43 #190 №727760 
>>727707
В оно не должно отслеживать кол-во аргументов? Я задал три аргумента вместо одного. Почему не получил ошибку?
Аноним 26/04/16 Втр 19:31:25 #191 №727790 
>>727760
А дело опять не в компиляторею.
Всё потому что это C. Привыкай. Тут printf() и printf(const char*, ...) - синонимы (пруфец: http://ideone.com/6ftqA4).
Аноним 26/04/16 Втр 19:31:49 #192 №727791 
http://ideone.com/6ftqA4
Аноним 26/04/16 Втр 19:37:44 #193 №727796 
>>727790
printf - макрос для vprintf, которая является в свою очередь функцией с переменным кол-вом аргументов, что реализовано при помощи va_list.
А вот CreateSolidBrush. Я не вижу здесь переменного кол-ва аргументов.
HBRUSH CreateSolidBrush(
_In_ COLORREF crColor
);
typedef DWORD COLORREF;
Аноним 26/04/16 Втр 19:39:42 #194 №727800 
>>727796
>>727790
Надо будет проверить на GCC такие финты.
Аноним 26/04/16 Втр 19:41:58 #195 №727809 
>>727796
Сука, открой ссылку из >>727791 и посмотри про что я тебе писал, дурак блядь.
Аноним 26/04/16 Втр 19:44:22 #196 №727814 
>>727809
Ебанутый? Зачем ты притащил сюда printf? Он на va_list'е. С ним все понятно. А та функция просто указатель на 32-битное беззнаковое число. Хули оно не выдает ошибки в виде "Too many arguments"?
Аноним 26/04/16 Втр 19:45:59 #197 №727821 
>>727814
typedef unsigned long DWORD;
Не указатель даже, а просто число.
слоуфикс
Аноним 26/04/16 Втр 20:00:16 #198 №727839 
>>727821
Нет, животное, ты просто нихуя не знаешь языка и не понял что там делается.
http://ideone.com/uselL0
Аноним 26/04/16 Втр 20:01:52 #199 №727840 
>>727839
Ты просто привык к спермокомпилятору. Ничего, бывает.
Аноним 26/04/16 Втр 20:02:09 #200 №727841 
Для особо тупых: по стандарту си компилятор не особо должно ебать сколько там у ф-ции аргументов, если хочешь таких удобств - пиши на совместимом с обоими диалекте и компилируй плюсовым.
Аноним 26/04/16 Втр 20:03:02 #201 №727842 
>>727840
>спермокомпилер
>ideone
>gcc-5.1
https://ideone.com/credits
Аноним 26/04/16 Втр 20:04:47 #202 №727844 
14616902872730.png
>>727841
>пиши на совместимом с обоими диалекте и компилируй плюсовым
Stop right there criminal scum!
Аноним 26/04/16 Втр 20:07:20 #203 №727845 
>>727791
Лал. Проиграл с долбоеба, который так делает.
http://ideone.com/pcrszE
Здесь тебя компилятор обоссыт.
Аноним 26/04/16 Втр 20:09:59 #204 №727847 
>>727845
>include <stdio.h>
> printf();
Копетан, спасибо вам, вы прям глаза раскрыли мне!
Я так не делаю, а вот ты явно не умеешь читать, это наглядный пример утверждения, что
>>727841
>по стандарту си компилятор не особо должно ебать сколько там у ф-ции аргументов
Аноним 26/04/16 Втр 20:27:46 #205 №727867 
>>727847
Компилятора должно ебать не соответствие колличества фактических параметров с количеством формальным. Покажи мне ту строчку в стандарте, где написано, что это не так или ты будешь обоссан. Я сейчас просматриваю стандарт и вижу, что он говорит, что ты идешь нахуй, если функции не соответствует ее прототипу.

А по поводу этой: >>727791 хуйни, компилятору просто поебать на твои попытки переопределить функцию.
http://ideone.com/Ugwio5
А если ты напишешь printf() в какой-либо функции, компилятор просто скажет тебе, что ты ЛОХ.
Аноним 26/04/16 Втр 20:29:56 #206 №727872 
>>727867
>Компилятора должно ебать не соответствие колличества фактических параметров с количеством формальным.
И да. Забыл еще, что он проверяет типы аргументов. То есть если ты указал аргументы неправильного типа, он предупредит тебя, если можно преобразовать или пошлет нахуй если преобразование невозможно. Передавать что угодно можно только через void <звезда>
Аноним 27/04/16 Срд 00:20:01 #207 №728071 
>>727701
> Почему инструментарий в VS по-умолчанию не дает по ебалу за неправильный вызов функции?
Даёт. Ты забыл рассказать нам какие-то детали. Покажи вызов CreateSolidBrush, на котором оно не ругается, но падает. Потому что судя по твоим симптомам, у тебя ошибка где-то еще.
Аноним 27/04/16 Срд 00:22:54 #208 №728072 
>>728071
Вызов был:
CreateSolidBrush(0xFF, 0xFF, 0xFF);
вместо
CreateSolidBrush(RGB(0xFF, 0xFF, 0xFF));
Аноним 27/04/16 Срд 00:24:58 #209 №728075 
>>728072
> solidbrush.c(5) : warning C4020: 'CreateSolidBrush' : too many actual parameters
Но так-то ты прав, оно не должно быть варнингом. Быстрофикс алсо, спасибо, добавил к себе в проект тоже:
#pragma warning (error: 4020)
Аноним 27/04/16 Срд 00:47:13 #210 №728090 
>>727841
>пиши на совместимом с обоими диалекте
Ты, наверное, из тех людей, которые на вопрос про два стула отвечают "сдвину и лягу".
Аноним 27/04/16 Срд 00:48:56 #211 №728093 
>>728090
Не сразу понял этот невзъебенный подъеб
Аноним 27/04/16 Срд 03:14:48 #212 №728154 
>>727796
>printf - макрос
Какие ваши доказательства?
Аноним 27/04/16 Срд 03:16:36 #213 №728156 
>>728154
В glibc кажется видел.
Аноним 27/04/16 Срд 03:17:37 #214 №728157 
>>728156
> кажется
Так бы и писал. Что "printf, кажется, макрос".
https://sourceware.org/git/?p=glibc.git;a=blob;f=stdio-common/printf.c
Аноним 27/04/16 Срд 03:19:24 #215 №728158 
>>728157
Перепутал немного значит (вспоминая 33 строку).
Аноним 27/04/16 Срд 16:48:34 #216 №728547 
14617649145680.png
>>723844 (OP)
Ковыряльщик хуиты под GBA вкатился. За последнее время дописал простенькую работу с текстом (лол, на ПК изучение с Hello World-а начинается, а тут я только сейчас это реализовал), встроил Lua 5.1 в свой движок, дописав пару хуиточек (включая хендлер ошибок, чтобы не гадать, что случилось, пикрил) и запилил биндинги для Lua с полным функционалом моего скудного фреймворка. Это работает, притом довольно шустро, но есть некоторые проблемы:
- В Lua все числа по-умолчанию хранятся как числа с плавающей запятой. Стоит ли говорить, как это хуёво для маломощного процессора Геймбоя?
- Ванильная Lua довольно медленная.
Решил попробовать собрать LuaJIT (оно даже в режиме интепретации шустрее ванили раза в 3-4), но закономерно соснул хуйца — под виндой не хочет собираться ни в какую. Поднять виртуалку не имею возможности. Потом залез в Вики, и глянул совместимость — пишут, что LuaJIT работает лишь начиная с ARMv5, а у меня ARMv3.
Вопрос: Есть ли хотя бы минимальные шансы собрать LuaJIT под ARM7TDMI, или надо бросать это дело?
Аноним 27/04/16 Срд 16:54:35 #217 №728551 
>>728547
Можешь сказать, если не секрет, зачем ты вообще с ним заморачиваешься?
Аноним 27/04/16 Срд 16:58:51 #218 №728554 
>>728551
Это доставляет мне удовольствие. Причины несущественны.
Аноним 27/04/16 Срд 17:04:34 #219 №728557 
>>728554
Я не большой специалист в этом деле, но могу предположить, что тебе нужно почитать спецификации по целевому ARM и ARMу, для которого есть поддержка Lua. Найти различия, понять где есть несовместимости. Затем разобрать исходники LuaJIT и поправить их. Но это, как по мне, очень сильное колдунство. И это лишь мои предположения в стиле: "А как бы сделал я?".
Аноним 28/04/16 Чтв 06:53:40 #220 №729162 
Как открыть файл, только в том случае если это файл, а не папка?

Есть обратное - O_DIRECTORY, открывает только папку и выдает errno ENOTDIR.

Неужели надо извращаться, и сперва пытаться открыть его как папку, и успех чекать как ошибку? Нет способа попроще?

stat() вроде тоже никак не сообщает, папка или файл.
Аноним 28/04/16 Чтв 06:58:02 #221 №729165 
>>729162
Все, нашел - для stat() есть макрос S_ISDIR() для поля st_mode.

Чет проглядел в первого раза.
Аноним 28/04/16 Чтв 13:36:09 #222 №729396 
14618397696590.jpg
>>723844 (OP)
Сап двощ, надо разобрать длл-ку одну, вчера скачал IDA, разобрал ее как смог, ток не понял нихуя, походу придется учить кресты эти ваши. А сишечка ламповая мне нравится, немного учу ее и пишу лабы. Вот ток в прышах с ней очень удобно работать через clion, а вшинде какие-то траблы с mingw, то ему либ не хватает то clion-у не хватает какой-то фигни. В общем, в прыщах не могу поиграть в линеечку, надо декомпельнуть fire.dll и подменить на свою реализацию, которая ок. Куда копать укажите путь господа. Спасибо за внимание, с меня картиночкапикрелейтед.
Аноним 28/04/16 Чтв 14:19:11 #223 №729431 
Аноны а тут кто-нибудь угорает по LOCK-FREE алгоритмам? Набросал однонаправленный список, но при удалении вместо модификации бита значения указателя на следующий узел, пишу в него null попутно сохраняя старое значение в локальной переменной, а если удалить узел не удалось, восстанавливаю из локальной переменной. Что думаете, взлетит оно?
http://pastebin.com/CF7xzFsR
Аноним 28/04/16 Чтв 15:26:12 #224 №729507 
>>729431
Зачем оно тебе?

локфри != вэйтфри

В большинстве приложений локфри алгоритмы сливают по производительности алгоритмам с блокировкой.

Рекомендую глянуть готовые реализации.

А так, вот моя реализация фифо:
https://github.com/shkolnick-kun/bugurtos/blob/b173f6785a3f77f819683ae0ae7719dfd2098ce5/tests/main/lock-free-fifo/main.c
Аноним 28/04/16 Чтв 15:55:29 #225 №729527 
>>729507
>В большинстве приложений локфри алгоритмы сливают по производительности алгоритмам с блокировкой.
Ну что-то как-то я не знаю. Дернуть тяжелый мутекс и "усыпить" конкурирующие потоки чтобы перекинуть пару-тройку байт? Кроме того в случае списка, если один поток делает вставку в начале, а другой в конце списка, то и конкуренции нет, блокировка не оправдана. А на списке можно замутить скип-лист.
>локфри != вэйтфри
Ну вейтфри алгоритмы применимы к ограниченному кругу задач. У меня есть например только очередь при условии один читатель - один писатель.
>#define LF_DLCT_FAIL() (0)
>if( LF_DLCT_FAIL()) { //Dead lock detected
Вот тут не понял, поясни.
Аноним 28/04/16 Чтв 18:15:51 #226 №729663 
>>729396
1) В IDA есть HexRays по Tab/F5, там сиподобный псевдокод. Только представление об асме и о плюсах все равно нужно иметь.
2) В винде нет траблов с MinGW, все отлично работает.
3) Выкинь clion, конпелируй с командной строки.
Аноним 28/04/16 Чтв 19:17:13 #227 №729741 
14618602336880.jpg
>>723844 (OP)
ПРАВИЛЬНОЕ РАЗВИТИЕ ЯЗЫКА "C"
1. ДОБАВИТЬ МАССИВЫ С КОНТРОЛЕМ ГРАНИЦ
2. НЕЙМСПЕЙСЫ, МОЖНО СО СРЕДСТВАМИ ОГРАНИЦЕНИЯ ДОСТАПА К ИМЕНАМ ИЗ ДРУГИХ НЕЙМСПЕЙСОВ
3. АВТОМАТИЧЕСКАЯ ГЕНЕРАЦИЯ ЗАГОЛОВОЧНЫХ ФАЙЛОВ И ВКЛЮЧЕНИЕ ИХ В OBJ И LIB ФАЙЛЫ
4. ПРЕПРОЦЕССОР НА LUA С ДОСТУПАМ К ДАННЫМ КОМПИЛЯТОРА (СПИСКИ ИМЕН, РАЗМЕРЫ СТРУКТУР ДАННЫХ)
5. УСЛОВНЫЕ ПРОВЕРКИ КОТОРЫЕ ВЫЗЫВАЮТ ЗАВЕРШЕНИЕ С ОШИБКОЙ В РЕЖИМЕ ОТЛАДКИ И ИСПОЛЬЗУЕМЫЕ ДЛЯ ОПТИМИЗАЦИИ КОДА К РЕЖИМЕ РЕЛИЗА
6. АТОМАТИЧЕСКИЙ ВЫВОД ТИПОВ ЧИСЛОВЫХ ЛОКАЛЬНЫХ ПЕРЕМЕННЫХ

https://www.linux.org.ru/forum/development/22475
Аноним 28/04/16 Чтв 19:42:46 #228 №729771 
>>729741
Незачем капсом писать.

1) Стандарт не запрещает (в TCC была частичная поддержка проверки границ массивов, например но ее, вроде бы, сломали в последних версяих).
2) В том виде, в котором оно есть в плюсах, не нужно. Но в виде имямодуля.сущность имеет право на жизнь.
3) Хочу модули всю сознательную жизнь. Понимаю, по каким причинам их не было изначально, но сейчас можно уже и добавить. У компилятора информации достаточно. Если будет forceinline в стандарте, нормальные константы вместо define и пометка типов, как static, то до модулей останется шаг.
4) Нахуй. А вот вычисления во время компиляции на той же самой сишечке (с анально огороженным рантаймом) очень пригодились бы. Особенно для embedded, где многое хочется посчитать заранее, и круто было бы делать это тем же инструментом.
5) А чем это отличается от 1?
6) Не для языка с неявным преобразованием типов.
Аноним 28/04/16 Чтв 20:29:57 #229 №729810 
>>729771
>Незачем капсом писать.
это паста, твой день прошел не зря братиш
>>729663
а в крестотреде лион прям уважают
Аноним 28/04/16 Чтв 20:35:07 #230 №729820 
>>729810
Я знаю, что паста, просто больная тема.

> лион
Если все работает, то, очевидно, ничего и не нужно выкидывать. Если не осилил настроить, то либо осилить, либо выкинуть. Выучить полтора заклинания для компиляции с командной строки проще, чем настроить рандомную IDE.
Аноним 28/04/16 Чтв 20:38:26 #231 №729826 
>>729820
Там вместо прожектфайлов как в стандартных иде используется cmake, так что у него выбор только осилить.
Аноним 28/04/16 Чтв 20:51:18 #232 №729838 
>>726583
Хм. А как такое с вещественными числами сделать?
Аноним 28/04/16 Чтв 20:55:40 #233 №729848 
>>729838
А зачем такое с ними делать? Так-то можно прочитать как unsigned int, выделить мантиссу с экспонентой и с ними что-то творить. Но вот зачем?
Аноним 28/04/16 Чтв 20:58:14 #234 №729853 
>>729820
Я уже осилил.
Такой вопрос: Если я компиляю хелоуворлд с помощью msvs15 и с помощью gcc, по printf будет дергать один и тот же апи, или у gnu gcc свой printf? И вообще как узнать что вошло в бинарник и из какихисточников? весит 64 кб. И как православнее все-таки писать чтоб код без минимальных проблем переносился с прищей на сперму? И еще, я правильно понимаю что когда какой-то софт для работы требует библиотеки из visual studio, то значит он был 100% скомпилен не в mingw?
Аноним 28/04/16 Чтв 20:58:15 #235 №729854 
>>729848
Мне в вузике что-то похожее сказали сделать. Зачем? Просто. Очередное бессмысленное байтоёбство ради очередного бесполезного навыка.
Аноним 28/04/16 Чтв 21:02:54 #236 №729860 
>>729854
Займись байтоебством со смыслом - напиши свою printf. Скилл, полученный во время попыток правильно округлить и вывести все float тебе точно пригодится. Причем в любом языке программирования, где используется IEEE 754.
Аноним 28/04/16 Чтв 21:12:13 #237 №729876 
>>726518
Флаги удобны для передачи параметров. foo(YOBA1 | YOBA2). Зато битовые поля читаемее.
Аноним 28/04/16 Чтв 21:14:20 #238 №729881 
>>729860
Диванная трагедия в том, что мне вообще не интересны все эти низкоуровневые радости, хочу дальше делать свою игру на питоне лол, а не биты двигать. Страдания.
Аноним 28/04/16 Чтв 21:17:25 #239 №729882 
>>729881
Это не низкоуровневые радости, а примитивная математика. Если для тебя это тяжело, ты выбрал не ту специальность.
Аноним 28/04/16 Чтв 21:23:13 #240 №729891 
>>729853
> по printf будет дергать один и тот же апи, или у gnu gcc свой printf
С давних пор в Windows поставляется рантайм в виде MSVCRT.DLL. Он застрял на C89, но Microsoft продолжает класть его в дистрибутивы по соображениям обратной совместимости. Раньше GCC пытался использовать printf оттуда, теперь у них свои printf/vprintf/vsnprintf и т.д. (из-за необходимости поддержки всяких %zu и прочих современных фишек). Многие другие функции по-прежнему дергаются из MSVCRT.
Студия, вроде бы, после VS 6.0, линкуется со своими MSVCRxxx.dll, и где-то до 2013 проблемы совместимости были (в том числе свой _snprintf вместо отсутствующего стандартного). Теперь рантайм перепилили, читай тут: https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/

> как православнее все-таки писать чтоб код без минимальных проблем переносился
Как обычно. Стараться использовать функции из стандарта, а все нестандартное оборачивать в функции, выносить в отдельные модули и обкладывать ифдефами.

> ще, я правильно понимаю что когда какой-то софт для работы требует библиотеки из visual studio, то значит он был 100% скомпилен не в mingw
Да, он был скомпилен компилятором от Microsoft.

> как узнать что вошло в бинарник и из какихисточников
Для Windows поставь Dependency Walker, он импорты/экспорты DLL показывает. А так, у компиляторов и линкеров есть ключики для verbose, чтобы узнать, с какими либами линкуемся. И дальше уже смотреть на либы. Для софта уровня хелловорлда проще собрать отладочную версию и посмотреть дизасм.
Аноним 28/04/16 Чтв 21:40:36 #241 №729915 
14618688367640.jpg
>>729891
Спасибо за расстановку точек, Анон.
Аноним 28/04/16 Чтв 21:58:44 #242 №729947 
>>729891
таки хелоуворлд скомпиленный gcc тянет msvcrt
Аноним 28/04/16 Чтв 22:04:04 #243 №729951 
>>729947
Ну да, а там кроме printf() есть еще стаб, который main() запускает, да и printf() в результате к fputc() сводится.
Аноним 28/04/16 Чтв 23:43:06 #244 №730119 
>>729891
>Раньше GCC пытался использовать printf оттуда, теперь у них свои printf/vprintf/vsnprintf и т.д.
Щито? printf - это часть стандартной библиотеки. Это не часть компилятора никак.
Аноним 29/04/16 Птн 01:09:36 #245 №730165 
>>730119
Перефразирую. Реализация стандартной библиотеки GCC под Windows частично опирается на MSVCRT, частично использует собственный код можешь начинать гуглить libmingwex.

> Это не часть компилятора никак.
Да. Зато компилятор и стандартная библиотека - это части реализации языка. В мире Windows компиляторы часто используют собственный рантайм (и даже различные версии одних и тех же компиляторовVisual Studio имеют собственный рантайм). Например, это делается из-за необходимости поддержки собственных расширений языка и прочих фишечек (особенно у Microsoft), любви к велосипедостроению, из-за проблем MSVCRT (выше по треду), и еще можешь oldnewthing почитать, там был пост о том, что MSVCRT - это "приватная" реализация рантайма для нужд системы, которая не предназначалась для использования сторонними приложениями. Можно (с осторожностью) сказать что-нибудь вроде /Zl и использовать какой-то другой рантайм, но полная совместимость во всех режимах компиляции будет только у родного. А вот в мире Linux да, там есть несколько разных библиотек, которые специально затачивают под GCC, поэтому все работает.
Аноним 29/04/16 Птн 03:00:37 #246 №730211 
>>729771
ЧЕ КАПРИЗНИЧАЕШ?
Аноним !A.W.Hawkes 29/04/16 Птн 03:04:06 #247 №730213 
>>729771
ЧЕ КАПРИЗНИЧАЕШ?
СТАРЫЕ ПРОГРАМКИ БЕЗ ПРОБЛЕМ БУДУТ КОМПИЛИРОВАТСЯ
DEFF С КОНСТАНТИКАМИ В ОТДЕЛЬНОЫХ ФАЙЛИКАХ БУДЕШ ХРАНИТЬ
Аноним 29/04/16 Птн 03:11:45 #248 №730215 
>>729741
МАССИВЫ С КОНТРОЛЕМ ГРАНИЦ- ОТДЕЛЬНЫЙ ТИП ДАННЫХ
ВСЕ ССЫЛКИ НА ТАКИЕ МАССИВЫ СОДЕРЖАТ АДРЕСС 0-ГО ЕЛЛЕМЕНТА И ЧИСЛО ЕЛЛЕМЕНТОВ
Аноним 29/04/16 Птн 03:14:48 #249 №730217 
>>730215
И КЛЮЧ КОМПИЛЯЦИИ ЧТОБЫ ВСЕ ТАКИЕ МАССИВЫ АВТОМАТИЧЕСКИ КОМПИЛИРОВАЛИСЬ КАК ОБЫЧНЫЕ МАССИВЫ БЕЗ КОНТРОЛЯ
ПО МОЕМУ ОПЫТУ ОШИБКИ ВЫХОДА А ГРАНИЦЫ МАССИВОВ САМЫЕ ТРУДНООТЛАЖИВАЕМЫЕ
Аноним 29/04/16 Птн 20:07:17 #250 №730723 
вот моя проблема
в моем коде команда open при открытие большего файла(16Gb) возвращает ошибку что файл слишком велик и мне сказали что эту ошибку можно исправить дописав какой то ключ при компиляции
ни как не могу догадаться что это за ключ(-m64 не помогает)
Аноним 29/04/16 Птн 21:39:56 #251 №730793 
>>730723
>open
а fopen работает? бред какой-то про ключи. что за система?
Аноним 29/04/16 Птн 22:07:50 #252 №730811 
>>730793
fopen использовать нельзя
SunOS 5.10
Аноним 29/04/16 Птн 22:40:33 #253 №730831 
>>730723
>возвращает ошибку что файл слишком велик
чё за ошибка? не сталкивался с такой, чисто ради интереса.

Кстати, если у тебя соляра, чем компиляешь? Санстудио? ГЦЦ?
sageАноним 29/04/16 Птн 22:42:42 #254 №730832 
>>730831
>не сталкивался с такой
вот тоже не понятно, может он пользуется какой-то обёрткой, которая выделяет память и читает из файла...
Аноним 29/04/16 Птн 22:42:55 #255 №730833 
>>730831
собсно, в мане быстро сам нашёл

EOVERFLOW
pathname refers to a regular file that is too large to be
opened. The usual scenario here is that an application
compiled on a 32-bit platform without -D_FILE_OFFSET_BITS=64
tried to open a file whose size exceeds (1<<31)-1 bytes; see
also O_LARGEFILE above. This is the error specified by
POSIX.1; in kernels before 2.6.24, Linux gave the error EFBIG
for this case.

Но это для линукса, может на соляре как-то по-другому.
Аноним 29/04/16 Птн 22:43:30 #256 №730834 
>>730832
не, open - это системный вызов в посиксе
sageАноним 29/04/16 Птн 22:43:49 #257 №730835 
>>730834
я вкурсе
Аноним 29/04/16 Птн 22:45:14 #258 №730837 
>>730835
Ну так единственная обёртка, которая там может быть - это обёртка стандартной библиотеки. В принципе, можно попробовать вызвать трап напрямую в обход стандартной библиотеки, написав свою обёртку.
sageАноним 29/04/16 Птн 22:45:51 #259 №730838 
Так подожди. Ты компилируешь фацл под x86 и поэтому удивляешься что не можешь пользоваться файлами которые больше размерности типов? В этом же смысл?
sageАноним 29/04/16 Птн 22:46:23 #260 №730839 
>>730838
>файл под x86 и потом
sageАноним 29/04/16 Птн 22:48:51 #261 №730840 
>>730837
да не, то что x86-32 бинарники ограничены в размерах файлов - это нормально. не нужно ничё обходить, нужно просто компилировать в x86-64
Аноним 29/04/16 Птн 22:52:28 #262 №730842 
хотя я фиг его знает. не разбираюсь, но бывают же системы с размером диска больше чем максимальный тип данных. или даже оперативки - просто чёт прокукарекал, не парьтесь.

и сажа прилипла
Аноним 03/05/16 Втр 17:04:19 #263 №733271 
14622842594990.png
Начал учить сишечку.
Пока пишу хеловорды и читаю книжку из шапки.

>скриншот
Что здесь делают эти символы?

Так же объясните, пожалуйста, почему изменяется text, если getText() ничего не возвращает.
Не бейте, лучше обоссыте!
Аноним 03/05/16 Втр 18:27:35 #264 №733316 
>>733271
> if (c == EOF) c = EOF;
Вот тут твоя основная проблема. После этого присваивания ты выходишь из getText, но в строке оказывается введенный текст, за ним EOF, обрезанный до байта 0xff. Когда printf встречает спецификатор %s, она начинает печатать твой буфер символ за символом, пока не встретит символ конца строки \0. Т.е., она печатает введенный текст, символ EOF и далее какой-то мусор из переменной text, а потом дальше из стека пока не встретится \0. Этот мусор ты и видишь. Не надо добавлять EOF в строку - это всего лишь специальный код возврата для getchar(), а добавлять надо \0. Алсо, getchar() возвращает \0 только если юзер его ввел. Я считаю, что проверки на \0 тебе не нужны.

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

> int main()
Если ты учишь Си, а не плюсы, не делай так. Это устаревший синтаксис, который говорит, что функция принимает какие-то аргументы. Причем в рамках стандарта языка нет способа их получить. Правильно будет: int main(void)
Аноним 03/05/16 Втр 20:03:41 #265 №733426 
> - Годное пособие для гуманитариев:
> http://c.learncodethehardway.org/book/

Народ, поясните за шапку. По этому пособию значит не очень круто учиться, так? А почему? Я просто думал по нему потом, имея уже некоторые свои знания по Сишечке, попробовать поделать всякие вещи, которые описаны там...
Аноним OP 03/05/16 Втр 20:31:19 #266 №733450 
>>733426
Мне хардвей не нравится, но в первых тредах его активно советовали, поэтому он в шапке. Не пошло - попробуй Прата или K&R. Сам я, когда учил, читал все, что под руку попадалось.
Аноним 03/05/16 Втр 20:33:36 #267 №733452 
>>733450
Да просто там с TCP/IP что-то... Виртуалка что-то... Считай введение в эти штуки какое-то, не? Полезно, мне показалось.
sageАноним 03/05/16 Втр 21:43:43 #268 №733488 
>>733452
Да упражнения-то там неплохие. Вм писать - вообще очень полезное развлечение. А вот излагается все слишком поверхностно, для достижения понимания надо гуглить и читать маны.
Аноним 03/05/16 Втр 21:44:27 #269 №733491 
Ньюфаг вкатился. Вопрос - зачем структуре тег?

Если для объявления типа, то что это?

typedef struct {
int a;
char b;
} str_type;

Если нужны только переменные, то

struct {
int a;
char b;
} fst, sec, thi;

этот вариант всё реализует. Мне непонятно ЗАЧЕМ нужен тег?
Аноним 03/05/16 Втр 21:47:23 #270 №733497 
>>733491
Поищи в прошлых тредах, тут это пару тредов назад очень детально расписывали.
Аноним 03/05/16 Втр 22:06:20 #271 №733510 
>>733491
А теперь объяви структуру, в которой есть указатель на другую такую же структуру, используя только тайпдефы и безымянные структуры.
Аноним 03/05/16 Втр 22:11:03 #272 №733513 
>>733510
Как раз нашёл вроде за структуры общение в прошлых тредах.

Что касается твоей просьбы - легко:

typedef struct {
int a;
struct str_type * next;
} str_type;
Аноним 03/05/16 Втр 22:20:34 #273 №733520 
>>733497
В общем нашёл, но то что там написано для компилятора gcc неправда

https://arhivach.org/thread/153698/#658144

>>733513
Сама структура безымяна, но позволяет ссылаться на такую же при объявлении.
Аноним 03/05/16 Втр 22:48:47 #274 №733549 
>>733513
>>733520
В твоем примере используются две разные структуры: безымяннная структура, у которой есть typedef с именем str_type и внутри нее указатель на некую struct str_type, определение которой ты не предоставил. И пока ты не предоставил определение struct str_type, ты никак не сможешь дереференснуть next.

> для компилятора gcc неправда
Ну вот тебе твой же пример, он у тебя скомпилируется? http://ideone.com/mKlvZj
Аноним 04/05/16 Срд 01:08:25 #275 №733707 
>>733549
Верно, благодарю теперь понятно.
Аноним 05/05/16 Чтв 00:05:41 #276 №734684 
как работают функции вроде function(void arg0, void arg1, ....) как они детектят сколько аргументов после arg1? примеры printf(), ioctl() и тд.
Аноним 05/05/16 Чтв 00:32:19 #277 №734730 
>>734684
man va_start
Аноним 05/05/16 Чтв 00:32:37 #278 №734731 
>>734684
Гугли va_arg.
Аноним 05/05/16 Чтв 09:04:03 #279 №734847 
Снова я со своими структурами и указателями. Написал стэк, состоящий из структур с указателями на такие же структуры.

https://ideone.com/JkCgzU

Осуществляю реверс строки. Всё работает. Но проблема в том, что при компиляции вылетает куча предупреждений типа таких:

passing argument 1 of 'pop' from incompatible pointer type

Как от них избавиться? Хочется абсолютно пустого success после компиляции.
Аноним 05/05/16 Чтв 09:43:37 #280 №734866 
>>734847
> pop (p_el_stack *head)
Функция принимает указатель на p_el_stack. А ты передаешь ей указатель на указатель. Убери амперсанд в вызове рор() или раскидай еще звездочек.
Аноним 05/05/16 Чтв 12:27:04 #281 №734964 
>>734847
>p_el_stack *stack;
Просто звездочку здесь убери.
Аноним 05/05/16 Чтв 12:30:00 #282 №734969 
>>734964
Хотя не, при такой реализации, ты должен в функциях pop и push передавать указатель на указатель.
Аноним 05/05/16 Чтв 12:59:00 #283 №734994 
>>723844 (OP)
Если документация lldb в pdf?
Аноним 05/05/16 Чтв 13:23:07 #284 №735008 
>>734684
У таких функций всегда должен быть хотя бы один обязательный аргумент, который, по задумке, и используется для определения количества и типов остальных. В printf это format.
Аноним 07/05/16 Суб 21:01:32 #285 №737262 
Есть кто-нибудь?
Аноним 07/05/16 Суб 21:08:44 #286 №737264 
Имеется имя файла в каталоге в системе Linux, например /home/user/filename.btm . Нужно скопировать данный файл в другой каталог /home/.../folder . Файл произвольный. Как это лучше реализовать на Си, чтобы функция была в виде: copy(const char file, const char tofolder)?
Аноним 07/05/16 Суб 22:13:00 #287 №737290 
>>737264
Разбирается в первой главе книги C Programming Language Кернигана и Ричи.
Аноним 08/05/16 Вск 00:12:43 #288 №737351 
Аноны, кто-нибудь с контейнерами из glib работал? От чего может случаться сегфолт? Вроде копирую все правильно, может получать элемент по другому нужно?
https://gist.github.com/injonsed/036ef782e2e2212a2447afbcd77907b3
Аноним 08/05/16 Вск 01:15:29 #289 №737384 
>>737351
А сам ты взять gdb и посмотреть не можешь? Ты создаешь массив из элементов ModelProperty, кладешь в него вместо ModelProperty только указатель на ModelProperty, а забрать пытаешься ModelProperty, а не указатель. Разберись со своими желаниями.

> malloc(strlen (name) ∗ sizeof(char));
> strcpy (prop->name, name);
Алсо, тут у тебя явный off-by-one.

Аноним 08/05/16 Вск 01:40:39 #290 №737385 
>>737384
Спасибо анон, разобрался, в следующий раз не буду бухим код писать просто ^_^
Аноним 08/05/16 Вск 06:47:03 #291 №737420 
Анон, будешь писать код в стиле "Ехал define через define" - я найду тебя и вырву тебе сердце.
Аноним 08/05/16 Вск 10:14:26 #292 №737435 
>>737420
О нет, пощади меня.

анон, который пишет в стиле ехал define через define
Аноним 08/05/16 Вск 10:18:12 #293 №737437 
14626918926590.png
>>737435
Ну всё, ты огребаешь
Аноним 08/05/16 Вск 11:25:01 #294 №737460 
>>737420
У тебя есть еще года три, чтобы придумать альтернативу и протолкнуть ее в C2x.
Аноним 08/05/16 Вск 17:25:46 #295 №737683 
Есть такой маленький проект:
main.c: http://pastebin.com/jBZphP0D
tree.h: http://pastebin.com/PuVxBzRh
tree.c: http://pastebin.com/QuCQdJHe
list.h: http://pastebin.com/Sk3UdJDK
list.c: http://pastebin.com/2PBpUxrZ

При попытке скомпилировать возникает ошибка No target architecture, и вываливается место в winnt.h. Что это за хуйня? Как исправить?
Аноним 08/05/16 Вск 17:27:41 #296 №737685 
>>737683
А, блять, на форуме Pelles C ответ на это есть: надо отметить Enable Microsoft extensions.
Аноним 08/05/16 Вск 17:36:20 #297 №737694 
По поводу этого файла: http://pastebin.com/BB93VR9C

Мне надо написать односвязный список и функции для работы с ним. Я определил структуру элемента списка node и два типа: список List и указатель на список PList; При попытке скомпилировать возникают ошибки:

Missing type specifier; assuming 'int'.
Syntax error: expected ';' but found ''.
Missing type specifier; assuming 'int'.
Expected type for parameter 2, but found 'node'.
Missing type specifier; assuming 'int'.
Syntax error: expected ')' but found '
'.
Syntax error: expected ';' but found ')'.
Error code: 1

Что я делаю не так? Как правильно объявить тип для списка, указателя на список и использовать их в функциях?
Аноним 08/05/16 Вск 17:37:44 #298 №737696 
К предыдущим ошибкам.
Missing type specifier; assuming 'int'.
Redeclaration of 'PList', previously declared at C:\Usersexpected 'struct node *' but found 'int'.
Аноним 08/05/16 Вск 18:40:09 #299 №737725 
>>737694
У нас не плюсы. Теги структур требуют ключевого слова struct, поэтому struct node ∗ ИЛИ List ∗ ИЛИ Plist. Обсуждали буквально 20 постами выше.
sageАноним 08/05/16 Вск 18:49:21 #300 №737735 
>>737696
А, ну да, я пиздоглазый, не заметил еще, что у тебя там тайпдефа нет. У Microsoft есть устоявшийся шаблон типа:
typedef struct tagSomething { ... } TypeName, ∗LPTypeName;
А у тебя там не тип, у тебя там кроме структуры объявляются не типы, а две переменных: struct node List и struct node ∗Plist. Вряд ли это то, чего ты хотел добиться.
Аноним 08/05/16 Вск 18:54:20 #301 №737737 
>>737725
Ну, а вообще использование псевдонимов (типов) List и PList вместо node и node * допустимо?
Аноним 08/05/16 Вск 18:54:54 #302 №737739 
>>737735
>А у тебя там не тип, у тебя там кроме структуры объявляются не типы, а две переменных
Все, понял.
Аноним 08/05/16 Вск 19:17:32 #303 №737750 
>>737737
> использование псевдонимов (типов) допустимо?
А для чего их сделали, по-твоему? Это вопрос стиля - выбери и придерживайся. В каком-нибудь линуксовом коде чаще всего будет использоваться struct с тегом, кто-то еще не только для структур, но даже для указателей typedef делает не будем показывать пальцем на LPCTSTR. Я лично одобряю typedef для struct, enum и для создания синонимов примитивных типов, а указатели предпочитаю писать явно.
Аноним 08/05/16 Вск 20:26:03 #304 №737783 
14627283640090.png
Может кто понять, что творится в этом коде.
Аноним 08/05/16 Вск 20:32:56 #305 №737789 
>>737783
Это из ida pro декомпилятор?
Аноним 08/05/16 Вск 21:14:01 #306 №737815 
>>737783
Очевидно, что ксорятся два буфера. Дизасм был бы гораздо понятнее.

>>737789
Это может быть и IDA, но не дефолтный HexRays. Похоже на snowman.
Аноним 08/05/16 Вск 21:26:28 #307 №737824 
Хочу написать программу для создания карты PE файла. В книге Румянцева для этого используется дерево, но из его дрисни я ничего не понял и начал писать свою программу. Сначала задумка бы такова: в дереве хранятся структуры, описывающие каждый заголовок. В этим структурах в списке хранится дамп полей. Но как только взялся реализовывать, понял, что дерево в таком случае нахуй не нужно, а лучше подошел бы массив.

Как лучше реализовать карту структур и секций?
Аноним 08/05/16 Вск 21:31:29 #308 №737828 
>>737824
Нихуя не понял, чего ты хочешь добиться. Куда там дерево воткнуть, не представляю. Секции - это просто массив. Большинство структур (кроме IMAGE_DOS_HEADERS, IMAGE_NT_HEADERS и, собственно, массива IMAGE_SECTION_HEADER) читаются уже со смапленных секций, хранить ничего не нужно.
Аноним 08/05/16 Вск 21:33:10 #309 №737831 
>>737828
Скачай книгу Румянцева "Исследование программ win 32" и посмотри, как он это делает. Похоже, что он все поля пихает в дерево, и в каждом узле еще хранит информацию для графического древовидного отображения этих полей.
Аноним 08/05/16 Вск 21:42:01 #310 №737835 
14627329216630.png
>>737815
Ассемблер

>>737789
Это hopper
Аноним 08/05/16 Вск 21:49:50 #311 №737838 
>>737831
Скачал, охуел, закрыл. Смотри, вот есть у тебя IMAGE_DIRECTORY_ENTRY_IMPORT, и он ее красиво отображает в дереве, внутри секции .idata. Вот только эта структура используется уже после того, как секции замапили, и тебе никто не мешает расположить ее в PE-файле так, чтобы она начиналась в одной секции, а заканчивалась вообще в третьей (да, так обычно не делается, но это возможно). Поэтому подобное представление не нужно.

>>737835
Так что тебе там непонятно из кода (и дизасма)? Есть немного подготовки, есть два буфера. Один из них ключ (вот это самое "Yes, I know..."), другой в var_58. Они ксорятся между собой. Таким образом исходный буфер обфусцируется/деобфусцируется.
Аноним 10/05/16 Втр 07:33:35 #312 №738921 
Зачем нужны типизированные указатели?
В чём разница между
int a;
и
void a;
Аноним 10/05/16 Втр 07:34:18 #313 №738922 
>>738921
Макаба жрёт звёздочки
Аноним 10/05/16 Втр 08:22:01 #314 №738940 
>>738921
В том что ты, вася, будешь знать какого типа данные по указателю находятся.
Аноним 10/05/16 Втр 08:48:42 #315 №738949 
>>738922
Используй заместо звездочки этот символ: ×
Аноним 10/05/16 Втр 08:50:03 #316 №738950 
>>737420
Всегда так пишу.
Аноним 10/05/16 Втр 08:51:13 #317 №738951 
>>724109
На хабре штоле?
Аноним 10/05/16 Втр 08:58:27 #318 №738955 
>>738949
Гыгы:
void * kek;
Аноним 10/05/16 Втр 10:11:17 #319 №738993 
>>738955
void * kek;
Аноним 10/05/16 Втр 10:12:17 #320 №738995 
>>738955
void * kek;
Аноним 10/05/16 Втр 10:18:42 #321 №739001 
>>738955
void ⁂ kek;
Аноним 10/05/16 Втр 10:19:02 #322 №739003 
>>738955
void * kek;
Аноним 10/05/16 Втр 23:40:59 #323 №739931 
Из-за чего в коде

HANDLE hFile = CreateFile (filename, FILE_ALL_ACCESS, NULL, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

ошибка

Type error in argument 3 to 'CreateFileA'; expected 'unsigned long int' but found 'void *'.?

Компилирую Pelles C.
Аноним 11/05/16 Срд 05:09:32 #324 №740083 
>>739931
https://msdn.microsoft.com/en-us/library/windows/desktop/aa363858(v=vs.85).aspx
Аноним 14/05/16 Суб 17:51:03 #325 №743462 
всё время плачу слезами ностальгии, когда кто-то, в 2016, ебётся с винапи, а не линем.
Аноним 14/05/16 Суб 17:54:41 #326 №743469 
>>743462
Как будто есть разница. Как будто Windows API в 2016 куда-то делась.
Аноним 14/05/16 Суб 17:58:38 #327 №743473 
>>743469
только писать на нём нет никакого смысла, если тебе нужно открыть, блять, файл. есть же stdio.

и разница есть, ту как-бы проще.зазазаз
Аноним 14/05/16 Суб 18:28:23 #328 №743508 
>>737750
это не вопрос стиля
как ты будешь использовать структуры без typedef в программах где у тебя больше двух .cpp файлов?
да, ты можешь делать сокращенные объявления в .h файлах, но тогда пользоваться сможешь своими структурами только через косвенные обращения (указатели)..
Аноним 14/05/16 Суб 18:30:34 #329 №743511 
>>737420
а как ты будешь типобезопасные atd реализовывать на pure c? альтернатива ведь только void*..
Аноним 14/05/16 Суб 19:13:06 #330 №743551 
>>743473
> stdio
В котором нет ни единого способа портабельно узнать размер файла. И флажок "x" только в С11 появился. И дескриптор файла у него стандартным способом забрать нельзя. И я уже молчу про асинхронный ввод-вывод. И главное, под виндой ты хуй откроешь этим твоим fopen() файл с японскими иероглифами и кириллицей в имени (да, я знаю, что под линуксом счастье и UTF-8).
И поэтому стандартная библиотека нужна для всяких консольных утилит уровня grep - у которых требования к возможностям ОС застряли в 80х, зато требования к переносимости максимальные. Ну и для laba3.c, чтобы не изобретать велосипед каждый раз, стандартная библиотека тоже очень к месту. В остальных случаях лучше определить заранее список поддерживаемых платоформ, и пилить да-да, велосипеды частные реализации с нативными либами, а стандартную библиотеку использвать, как минимум, с осторожностью.

>>743508
Ты какую-то глупость написал. Поясни нормально. Алсо, у меня нет ни одного .cpp файла, здесь тред про сишечку.
Аноним 14/05/16 Суб 19:25:19 #331 №743572 
>>743551
А нет ли для С какой какой обертки которая скрывает разницу для часто используемых задач?
Аноним 14/05/16 Суб 19:28:04 #332 №743577 
>>743551
> В котором нет ни единого способа портабельно узнать размер файла
fseek
ftell

> И флажок "x"
а попробовать открыть файл для чтения перед этим не?

> И дескриптор файла у него стандартным способом забрать нельзя
чего?

> про асинхронный ввод-вывод
а ещё про GB не хватает да?

> японскими иероглифами и кириллицей в имени
ой всё.
Аноним 14/05/16 Суб 19:28:27 #333 №743579 
>>743577
> GC
Аноним 14/05/16 Суб 19:33:47 #334 №743582 
>>743572
c++
Аноним 14/05/16 Суб 19:54:33 #335 №743601 
>>743577
> fseek
Ждал этого ответа. Внезапно, стандарт говорит, что fseek(..., 0, SEEK_END) - UB. Я не отрицаю, что на практике это давным-давно нихуя не UB, но, тем не менее, одновременно правильного и стандартного способа нет.

> дескриптор файла у него стандартным способом
> чего
Ну хочу я mmap() сделать. Стандартная библиотека в mmap() не может, нужен дескриптор. Для дескриптора fileno какбэ есть, но в винде он _fileno() и тоже нихуя не стандартный, а mmap() вообще нет. И раз мы все равно скатываемся до различий в ОС, то лучше сразу скатиться дальше до open()/mmap() и CreateFile()/CreateFileMapping()/MapViewOfFile() в зависимости от системы и не ебать себе мозг все равно рано или поздно жизнь заставит.

> GC
Ну это как-то уж слишком толсто.

>>743582
> c++
С бустом.
Аноним 14/05/16 Суб 20:01:37 #336 №743605 
>>743601
> - UB
го вырезку в стандарте

>слишком толсто
слишком толсто это про китайские иероглифы - разве ты не можешь закодировать строчку как хочешь.
Аноним 14/05/16 Суб 20:08:23 #337 №743614 
>>743582
Т.е. в C++ есть функции/абстракции которые позволяют не писать реализацию обычных действий под винду/линукс/макинтош раздельно? Это "стандартная библиотека с++" что ли? С чем это поставляется вообще? Кто разрабатывает?
Аноним 14/05/16 Суб 20:09:43 #338 №743616 
>>743601

> c++
>С бустом.
А для обычного Си есть такое? Что операции с файлами к примеру не писать с учетом особенностей и чтоб сразу работал на маке/линуксе и виндах?
Аноним 14/05/16 Суб 20:20:55 #339 №743621 
>>743614
STL
Аноним 14/05/16 Суб 20:25:41 #340 №743631 
>>743616
>> c++
> STL
я вообще случайные слова пишу
Аноним 14/05/16 Суб 20:28:50 #341 №743636 
14632469300440.png
>>743605
> слишком толсто это про китайские иероглифы
> разве ты не можешь закодировать строчку
Я-то могу. Но проблема в том, что fopen() под виндой сводится к CreateFileA, которая раскодирует имя файла из MBCS в юникод, и использует для этого активную кодировку, которая в русской винде cp1251, и в которой нихуя нет иероглифов. И вот есть у меня .mkv-шка с няшными девочками, а открыть ее своей утилиткой на винде я не могу. А если активной кодировкой сделать 65001 (UTF-8), то винда охуевает по полной с различными веселыми спецэффектами. Правда, тут пару месяцев назад разработчики Visual Studio намекали, что собираются начать поддерживать UTF-8 в стандартной библиотеке, и даже, может быть, в самой винде не прошло, блять, и 20 лет.

>>743616
Чтобы настолько всеобъемлюще, как буст - нет. Для конкретных задач можно повыбирать в Utilities тут: https://notabug.org/koz.ross/awesome-c
Аноним 14/05/16 Суб 20:32:36 #342 №743644 
>>743636
> for binary stream
> c11
ясн
Аноним 14/05/16 Суб 20:37:50 #343 №743651 
>>743551
>глупость
не понимаешь почему используешь typedef struct в своих хедерах, и когда можно использовать просто struct, то это твои проблемы
Аноним 14/05/16 Суб 20:39:01 #344 №743654 
>>743644
А для текстовых еще веселее:

> For a text stream, either offset shall be zero, or offset shall be a value
> returned by an earlier successful call to the ftell function on a stream
> associated with the same file and whence shall be SEEK_SET.

Страдай. Алсо, в более древних стандартах примерно то же. И, в любом случае, аргумент про fseek(..., SEEK_END) чисто теоретический, потому что, как я уже говорил, последние ОС, где это чем-то грозило, давно вымерли.
Аноним 14/05/16 Суб 20:39:56 #345 №743655 
>>743551
вообще не читайте разглагольствования этого дебика
Аноним 14/05/16 Суб 20:48:45 #346 №743662 
>>743636
>Для конкретных задач можно повыбирать в Utilities
дурдом какой-то
Аноним 14/05/16 Суб 20:51:08 #347 №743665 
>>743654
> Алсо, в более древних стандартах примерно то же
ну да, я щас смотрю, там просто не модное undefined behavior, а другими словами.
Аноним 14/05/16 Суб 21:58:54 #348 №743717 
Сап, посоны. Посмотрите на этот цикл: http://pastebin.com/YT4avH9A

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

Но почему при этом имена секций выводятся пустыми, а большинство свойств этих секций равны нулю.
Аноним 14/05/16 Суб 22:03:17 #349 №743723 
>>743717
Давай ты будешь в каком-нибудь одном треде спрашивать? >>743719
Аноним 15/05/16 Вск 14:02:00 #350 №744120 
>Stephen G. Kochan "Programming in C (4th Edition)" (2014)

в pdf существует?
Аноним 15/05/16 Вск 15:14:25 #351 №744161 
>>743655
Ну он далеко не дебик, стандартная либа рили годится только для консольных калькуляторов и вгетов с ффмпегами, расчётов трансформаторов и прочей поебени завязанной на вычисления и сеть, захочешь написать что-то более тонко и глубоко взаимодействующее с ОС и её сервисами начнёшь либо писать свои вело либо искать готовые решения, то есть чужие вело. Большинство софта на C/C++ так и написькано, от всякой мелочи вроде SciTE до Хромиума: есть платформонезависимое ядро, над ним есть абстрактная надстройка, обертки, которые транслируют требуемый функционал из нативного апи ОС и её библиотек и никакого гимора, просто две версии программульки - для линуха и шинды, а не любишь велосипедить, перфоманс не имеет значения, любишь скорость разработки и быстрые решения, хяурь на дельфи и джаве или чо там щас модно - джаваскрипт нахуй.
Аноним 15/05/16 Вск 15:40:33 #352 №744215 
>>744120
> в pdf существует?
Хуй знает. Видимо, нет. Спасибо, что обратил внимание. Возьми третье издание, там C99, а про C11 почитаешь позже. А чего не Прата вообще?
Аноним 15/05/16 Вск 17:18:12 #353 №744293 
>>744215
ну его же книгу по крестам не рекомендуют например
Аноним 15/05/16 Вск 18:22:29 #354 №744341 
Решил вкатиться в Си.

Чем Clang, как IDE, лучше, чем MS VS2015?

Друган по универу - программист, говорил, что их заставляли кодить в RAD Studio.

Что выбрать?
Аноним 15/05/16 Вск 18:39:38 #355 №744354 
>>744341
>clang
>ide
Значение знаешь?
Аноним 15/05/16 Вск 18:40:21 #356 №744355 
>>744354
Среда разработке же?
Аноним 15/05/16 Вск 18:44:15 #357 №744360 
>>744355
Подумай лучше о карьере грузчика.
Аноним 15/05/16 Вск 18:48:13 #358 №744362 
>>744360
Советую сходить на хуй.
Аноним 15/05/16 Вск 18:51:41 #359 №744368 
>>744362
Ну ты всё же подумай.
Ещё в макдаке ныне люди всегда нужны.
Аноним 15/05/16 Вск 18:55:45 #360 №744372 
>>744368
Какой искромётный юмор уровня детского сада.
Аноним 15/05/16 Вск 18:59:27 #361 №744380 
>>744372
Но я же серьёзно. Смотри, ты уже не пездюк, но при попытке работать кодером будешь соревноваться за место с людьми программирующими с 14 лет, которым соответственно сольёшь.
А в маке в первый же месяц можешь двадцатку поднять за 8 часов с графиком 7/7.
Аноним 15/05/16 Вск 19:07:35 #362 №744390 
>>744380
Двачую, так ведь и есть.
Аноним 15/05/16 Вск 19:10:46 #363 №744393 
>>744380
Ваганыч, ну хватит. Уморил.

Я же не говрил, что хочу заниматься этим профессионально. Это твои догадки.

Я не разбираюсь в терминологии, но перефразирую: хочу попробовать покодить, уточню - для себя.
Что для этого понадоится ньюфагу в Си?

И тут в ответ очередная порция детсадовского искромётного юмора вперемешку с брызжущей желчью от анального профессионала.
Аноним 15/05/16 Вск 19:20:03 #364 №744396 
>>744393
gcc, clang - это компиляторы. MSVC - это IDE. начинающему программисту IDE не нужны. я так понимаю, что ты в винде - поставь https://www.sublimetext.com/ и редактируй код в нем, из компиляторов можешь выбрать MinGW или Cygwin
Аноним 15/05/16 Вск 19:23:55 #365 №744400 
>>744393
ставь clion, браток, рекомендую.
Аноним 15/05/16 Вск 19:25:56 #366 №744401 
>>744393
>хочу попробовать покодить, уточню - для себя.
на си ты ничего для себя не покодишь и интерес потеряешь. для нуба твоего типа важна, как бы это, "отдача": ты прикладываешь усилия, оно начинает работать, этим можно пользоваться, оно что-то делает, и ты понимаешь, что ты можешь "что-то создавать". на си в этой ситуации ее не будет. бери что-то, что позволит решить какую-то более или менее понятную и практическую задачу без безумия сишной байтоёбли и относительно легко позволит сделать GUI. Тот же веб с его JS; .NET WinForms (неплохой вариант, кстати). другие аноны подскажут может тоже.
Аноним 15/05/16 Вск 19:33:34 #367 №744410 
>>744396
Да, на винде. Забыл уточнить.

>поставь https://www.sublimetext.com/ и редактируй код в нем, из компиляторов можешь выбрать MinGW или Cygwin
А это обеспечит подсказки по написанию и проверки возможных ошибок?

Почему не MSVC или RAD? Вроде там кнопочки, формочки и прочее.

>>744401
>для нуба твоего типа важна
Вот только клише не надо. Да, сумбурно взялся. Ничего, разберусь помалёху.
Аноним 15/05/16 Вск 19:34:52 #368 №744413 
>>744396
VS - это не только IDE, это IDE+конпелятор. И конпелятор можно просто использовать из командной строки, или даже скачать отдельно.

>>744393
Если места не жалко (10-15 ГБ) - ставь Visual Studio. Если места жалко - ставь Pelles C. Научиться потом конпелировать из командной строки недолго и несложно, тем более, что IDE эту самую командную строку в окне Build и в свойствах проекта все равно отображают.

Алсо вот этого >>744401 двачую. Если ты не любишь и не хочешь залезать в дебри, бери что-нибудь более высокоуровневое.
Аноним 15/05/16 Вск 19:37:38 #369 №744415 
>>744410
Где-то слышал, что в RAD вроде дропнули BCC, и там теперь шланг в качестве компилятора. Можешь попробовать и рассказать нам.
Аноним 15/05/16 Вск 19:43:15 #370 №744419 
>>744415
Там никогда и не было gcc. Какой-то свой костыль был.
А от шланга там вроде только бэкэнд прикрутили чтобы последний стандарт плюсов поддерживать, нихуя не изменилось - это худший вариант.
Аноним 15/05/16 Вск 19:48:57 #371 №744423 
>>744419
Да, я о том и говорю. BCC = Borland C Compiler, во времена 16 бит выбирать было особо не из чего, и он был ок, а вот под виндой он запомнился тем, что для сборки проекта обязательно приходилось писать какой-нибудь костыль.
Аноним 15/05/16 Вск 19:50:38 #372 №744425 
>>744413
>>744410
Спасибо за советы. Попробую обжиться.
Аноним 15/05/16 Вск 22:45:13 #373 №744624 
Более подходящего треда не нашел. Суть проблемы -- по переводу Васяна одной книги решил запилить простенький драйвер http://dmilvdv.narod.ru/Translate/LDD3/ldd_hello_world_module.html . Проблема в том, что при запуске make мне пишет следующее:
Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler

Гугление не даёт результатов. Есть у кого идеи какие?
Аноним 15/05/16 Вск 23:01:03 #374 №744649 
>>744624
Makefile, plz
Аноним 15/05/16 Вск 23:05:13 #375 №744653 
>>744649

Да, сори. Брал у этого же Васяна - http://dmilvdv.narod.ru/Translate/LDD3/ldd_compiling_loading.html

Другую версию нагуглил то ли на стэковерфлоу, то ли где-то еще:



# if KERNELRELEASE is not defined, we've been called directly from the command line.
# Invoke the kernel build system.
ifeq (${KERNELRELEASE},)
KERNEL_SOURCE := /usr/src/linux-headers-4.4.0-22-generic
PWD := $(shell pwd)
default:
${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} modules

clean:
${MAKE} -C ${KERNEL_SOURCE} SUBDIRS=${PWD} clean
endif


Одинаково нихуя не работает
Аноним 15/05/16 Вск 23:21:11 #376 №744663 
>>744653
1. Что за дистр, ядрo?
2. Это работает? goo.gl/3Sx4ec
Аноним 15/05/16 Вск 23:27:01 #377 №744670 
>>744653
3. Компилируешь gcc?
Аноним 15/05/16 Вск 23:29:49 #378 №744675 
>>744663
Ubuntu 16.04 LTS, ядро 4.4.0-22

Результат твоей пасты:
make -C /lib/modules/4.4.0-22-generic/build M=
make[1]: Entering directory '/usr/src/linux-headers-4.4.0-22-generic'
make[2]: No rule to make target 'arch/x86/entry/syscalls/syscall_32.tbl', needed by 'arch/x86/entry/syscalls/../../include/generated/asm/syscalls_32.h'. Stop.
arch/x86/Makefile:199: recipe for target 'archheaders' failed
make[1]:
[archheaders] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.4.0-22-generic'
Makefile:5: recipe for target 'all' failed
make: * [all] Error 2
Аноним 15/05/16 Вск 23:31:48 #379 №744679 
>>744670

Не понял немного вопрос нубас в программировании под линукс. Вообще да, но я так понял, при запуске make всё должно сделаться само магическим образом. Ну типа если я просто компилю через gcc, то у меня даже не видит linux/module.h -- гугл сказал, что так и должно быть, если одним gcc компилить.
Аноним 16/05/16 Пнд 00:25:03 #380 №744718 
>>744675
Скинь выхлоп tree /usr/src/ файлом
Аноним 16/05/16 Пнд 00:38:04 #381 №744722 
>>744718
http://rgho.st/6PBlm4FCc
Аноним 16/05/16 Пнд 00:44:13 #382 №744724 
>>744722
Вообще хз в чем проблема.
Можешь попробовать вручную добавить syscall_32.tbl
https://raw.githubusercontent.com/torvalds/linux/v4.4/arch/x86/entry/syscalls/syscall_32.tbl
Аноним 16/05/16 Пнд 00:46:18 #383 №744726 
>>744724
Ubuntu проблемыс скорее всего. Дерьмовый дистр
Аноним 16/05/16 Пнд 00:47:01 #384 №744727 
>>744679
Ты можешь явно указать make чем компелировать
Аноним 16/05/16 Пнд 00:47:39 #385 №744728 
>>744724

Чуть позже отпишусь.

>>744726

Какие юзер френдли альтернативы? Или я делю на ноль?
Аноним 16/05/16 Пнд 00:54:52 #386 №744731 
>>744728
Тебе нужен девелопер-френдли. Мейнстрим в этой категории: arch, gentoo, slackware. У арча очешуительный доки
Аноним 16/05/16 Пнд 07:30:25 #387 №744822 
>>744731
арчую арч
Аноним 16/05/16 Пнд 07:57:32 #388 №744832 
>>744731
гентчую генту
Аноним 16/05/16 Пнд 09:58:08 #389 №744862 
>>744724

Добавил. Сообщение о том, что нужен syscall_32.tbl пропало, но эта шляпа опять появилась:
make -C /lib/modules/4.4.0-22-generic/build M=/home/rapeity/Документы/kernal development/nothing driver modules
make[1]: Entering directory '/usr/src/linux-headers-4.4.0-22-generic'
arch/x86/Makefile:148: CONFIG_X86_X32 enabled but no binutils support
Makefile:670: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
make[1]: No rule to make target 'development/nothing'. Stop.
make[1]: Leaving directory '/usr/src/linux-headers-4.4.0-22-generic'
Makefile:20: recipe for target 'default' failed
make:
[default] Error 2

Аноним 16/05/16 Пнд 10:59:12 #390 №744879 
>>744862

В общем, суть была в том, что в путях был спейс фейспалм

Аноним 16/05/16 Пнд 11:39:46 #391 №744895 
>>744879
Пиши почаще их руками.
Аноним 16/05/16 Пнд 16:31:51 #392 №745077 
>>744895
Что анонимус думает о сишных либах для async io(libuv, libev)? Насколько они удобны по сравнению с asio?
Аноним 16/05/16 Пнд 16:37:49 #393 №745078 
>>745077
Относительно ебланически перегруженного asio (с которым хэловорлд компилируется пол часа и кода получается больше чем с голыми сокетами) – вообще всё смотрится охуенно. Даже если ты пишешь на плюсах а не на си.
Аноним 17/05/16 Втр 00:34:57 #394 №745443 
>>745078
Были бы в еще сишке лямбды...
Аноним 17/05/16 Втр 00:40:35 #395 №745447 
>>745443
Не накаркай! http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2030.pdf
Аноним 17/05/16 Втр 01:12:39 #396 №745465 
>>745447
Замыкания классные
Аноним 17/05/16 Втр 01:15:09 #397 №745467 
>>745447
Чем
>> func_name(..., callback_type cb, void* ptr_to_your_data)
лучше замыканий??
Аноним 17/05/16 Втр 01:34:36 #398 №745470 
>>745467
Тем, что здесь нет никакой магии. Если хочется магии - почему бы не взять плюсы? Там ее хоть отбавляй, особенно в новых стандартах.
Аноним 17/05/16 Втр 01:45:19 #399 №745476 
>>745470
Не вижу здесь
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2030.pdf
никакой магии
Аноним 17/05/16 Втр 02:48:13 #400 №745504 
>>745470
Ой да в любом современном языке магии гораздооо больше чем в плюсах
Аноним 17/05/16 Втр 03:10:18 #401 №745508 
>>745504
>>745504
нет там магии. только программисту руки короче сделали. КОКОКО БЕЗАПАСНАСТЬ!!!
Аноним 17/05/16 Втр 03:18:20 #402 №745509 
>>745508
Чем каналы в go не магия? Или ATD в любом языке. Если уж замыкания из n2030 -называть магией...
Аноним 17/05/16 Втр 03:22:23 #403 №745510 
>>745509
Получается любая абстракция -> магия, давайте все всё писать на ассемблере, там все прозрачно.
17/05/16 Втр 16:03:26 #404 №745909 
Аноны, посоветуйте с личного опыта ньюфагу простенький фреймворк для модульного тестирования.
Аноним 17/05/16 Втр 18:00:00 #405 №746005 
Хм, у вас всё же странное отношение к байтоёбле.
Я вот на работе пользуюсь всем, что под руку подвернётся - питоном, жабаскриптами, плюсами, шарпом, перлом, вб, даже о богомерзкую жабу приходилось руки марать. Но в основном питон, потому что обычная рабочая ситуация - это "хуяк, хуяк, и в продакшн", надо срочно-быстро-вчера сделать самые разные задачи.
А на си я пишу дома, для души. Мне байтоёбля доставляет больше, чем вся высокоуровневая хуета с лямбдами.
Аноним 17/05/16 Втр 18:25:16 #406 №746019 
>>746005
веб?
Аноним 17/05/16 Втр 18:36:14 #407 №746033 
>>745077
>async io(libuv, libev)? Насколько они удобны по сравнению с asio?
нужно четко представлять, как они оборачивают нативные вызовы, те в чего они превращаются на целевой платформе..
а вообще если нет необходимости в кроссплатформе, то использовал бы нативные соответствующие апи
Аноним 17/05/16 Втр 18:39:01 #408 №746036 
>>745470
И что же в новых стандартах – магия? Назови навскидку чтоле.
Аноним 19/05/16 Чтв 20:04:17 #409 №747862 
>>746036
динамическая типизация например.
Аноним 19/05/16 Чтв 20:09:58 #410 №747865 
>>747862
>динамическая типизация
Пиздос, я думал, скатить кресты еще ниже невозможно.
мимо
Аноним 19/05/16 Чтв 20:11:34 #411 №747868 
>>747862
Её там нету.
Может ты о std::experemental::any - но это шаблонная библиотека как и весь STL, и узнать конкретную реализацию не составляет проблем, никакрой магии компилятора и прочего.
Аноним 19/05/16 Чтв 20:29:12 #412 №747881 
>>747865
Пиздос, а я-то думал на пейсатели на си не настолько деградировали.
тоже мимо
Аноним 19/05/16 Чтв 20:37:28 #413 №747885 
>>747868
Что-то типа boost::variant? Только для POD типов?
Аноним 19/05/16 Чтв 20:57:01 #414 №747903 
>>747885
Он в отличии от варианта вообще для всего. Если сказать точнее - это почти полная эмуляция динамики с сопутствующим оверхедом, в отличие от варианта выше.

http://www.boost.org/doc/libs/1_61_0/doc/html/variant/misc.html#variant.versus-any
Это собственно копипаста из буста как обычно, поэтому это сравнение котируется.
Дальнейшее обсуждение лучше продолжить в крестотреде или ткните носом где там в плюсах магия как в рубях или gовне.
Аноним 19/05/16 Чтв 21:00:48 #415 №747906 
>>747881
Я вижу только деградацию крестов, если этот товарищ >>747862 не пиздит.
Аноним 19/05/16 Чтв 21:02:52 #416 №747907 
>>747906
Он сказал хуйню, спутав вывод типов с динамикой, а ты не проверяя подписался под его словами.
Аноним 19/05/16 Чтв 21:03:36 #417 №747908 
>>747903
>как в рубях
А там-то где? call/cc разве что.
Аноним 19/05/16 Чтв 21:05:09 #418 №747911 
>>747907
Оно мне надо что ли, проверять пост рандомного сосачера на тему, которая мне совершенно не интересна?
Аноним 19/05/16 Чтв 21:07:52 #419 №747916 
>>747911
Значит не удивляйся когда на тебя будут ссать после соглашения с высером, в чём проблема?
Аноним 19/05/16 Чтв 21:09:36 #420 №747920 
Расскажите лучше про принципиальные новшества С11. Хочу книжку почитать по нему - стоит ли?
Аноним 19/05/16 Чтв 21:12:15 #421 №747922 
>>747908
Магия в языках программирования - всё, что реализовано не средствами языка (т.е. неявно для тебя в момент написания). Короче говоря - в высокоуровенных языках вообще всё "магия". Как пример - те же корутины - вполне себе магия.
Аноним 19/05/16 Чтв 21:12:39 #422 №747923 
>>747920
Их нету. Страничку на вики прочитай, и хватит.
Аноним 19/05/16 Чтв 21:18:02 #423 №747926 
>>747923
Спецификатор _Noreturn указывает, что программа никогда не вернет управление из функции? Какой-то смысл для оптимизации или просто синтаксический сахар?
Аноним 19/05/16 Чтв 21:22:53 #424 №747929 
>>747926
Указывает компилятору на возможность какой-то микрооптимизации.
Аноним 19/05/16 Чтв 21:34:24 #425 №747939 
>>747926
Ветка кода, заканчивающаяся noreturn, ненормальная и случается редко, поэтому её можно куда-нибудь подальше засунуть, чтобы не отсвечивала.
Аноним 19/05/16 Чтв 21:37:58 #426 №747942 
>>747939
Это модификатор функции, вась.
Аноним 19/05/16 Чтв 22:02:10 #427 №747958 
>>747926
Да, это хинт компилятору для оптимизации и для статического анализа.

>>747942
Очевидно, что он имеет в виду ветку функции, которая вызывает функцию, помеченную _Noreturn.
Аноним 19/05/16 Чтв 22:11:09 #428 №747963 
А секьюрные варианты функций (аля strcat_s и тд) не включили в новый стандарт? В GCC переносить код студии из студии напрягает немного.
Аноним 19/05/16 Чтв 23:45:13 #429 №748018 
>>747963
Включили в виде необязательного расширения, но в следующем стандарте, скорее всего, смешают с говном или сразу запретят. Просто не пользуйся ими. А чтобы студия не умничала, скажи компилятору -D_CRT_SECURE_NO_DEPRECATE (Майкрософт не может в стандартные способы, даже когда сами протолкнули свое говно в стандарт).
Аноним 19/05/16 Чтв 23:47:16 #430 №748019 
>>748018
Про -D_CRT_SECURE_NO_DEPRECATE знаю. Код старый и не мой.
Аноним 19/05/16 Чтв 23:52:07 #431 №748020 
>>748019
Ну тогда страдай и реализуй сам (исходники CRT от Microsoft доступны, теоретичеки можно что-нибудь спиздить). GCC это вряд ли когда-нибудь будет поддерживать.
Dmitriy 20/05/16 Птн 03:34:49 #432 №748087 
Нарердолил Gentoo GNU/Linux, что лучше юзать для скорости работы, статические либы или динамические?
Dmitriy 20/05/16 Птн 03:35:38 #433 №748088 
Алсо под что сейчас программируют C - господа?
Аноним 20/05/16 Птн 03:51:15 #434 №748090 
>>748088
Веб
Dmitriy 20/05/16 Птн 03:59:02 #435 №748091 
>>748090
Это как?
Аноним 20/05/16 Птн 05:07:07 #436 №748098 
14637100271350.jpg
14637100271371.webm
>>748088
>Алсо под что сейчас программируют C - господа?
твою мамку
Аноним 20/05/16 Птн 05:25:45 #437 №748104 
>>748098
Умоляю, скажи, что это выхлоп декомпилятора!

>>748088
Очевидный линукс, очевидный embedded.

>>748087
> статические либы или динамические
Это нисколько не вопрос производительности - накладные расходы на динамическое связывание минимальные.
Аноним 20/05/16 Птн 07:09:36 #438 №748117 
14637173767030.png
>>748104
>Умоляю, скажи, что это выхлоп декомпилятора!
нет
Dmitriy 20/05/16 Птн 08:10:56 #439 №748124 
>>748104
Хочу накатить Gentoo uclibc amd64
все нормально работать должно? Мне хромиум скомпилять надо.
Dmitriy 20/05/16 Птн 08:15:03 #440 №748128 
А крестоблядки под шиндовс пишут(в основном) или под что-то другое?
Аноним 20/05/16 Птн 08:31:44 #441 №748130 
Когда в Си появятся лямбды? Без замыканий, просто анонимные функции.
Dmitriy 20/05/16 Птн 08:50:40 #442 №748137 
>>748130
Скоро, вангую в следующем стандарте.
Аноним 20/05/16 Птн 09:07:00 #443 №748138 
>>748137
Т.е. ещё через 13 лет. Для желающих уже есть ObjC, C++ (в которых можно писать и на си с лямбдами), разные форки компиляторов с блоками/вложенными функциями.
Аноним 20/05/16 Птн 09:08:16 #444 №748139 
>>748128
Нет, в основном кроссплатформу (от Qt до игровых движков).
Dmitriy 20/05/16 Птн 09:10:23 #445 №748140 
>>748139
Не так уш плохо, Я думал шинловс онли
Dmitriy 20/05/16 Птн 09:11:40 #446 №748141 
>>748138
C++ Правда походит для этого, может сишку и лямбд не добавят (зачем с сишечки плюсы делать?)
Аноним 20/05/16 Птн 09:33:25 #447 №748152 
>>748138 >>748141
Объектно Ориентированная Параша не нужна. Мне нравится Си за то, что он дает полный контроль над кодом, не добавляет ничего лишнего. Почти как ассемблер.
А лямбды нужны для улучшения читабельности кода, чтобы не создавать лишних функций и не плодить имен.
Аноним 20/05/16 Птн 09:36:08 #448 №748155 
>>748152
Кстати, подумал - в принципе и замыкания можно частично сделать, константные (запоминается текущее значение внешней переменной), для этого не нужны ни объекты, ни сборка мусора.
Раньше ЕМНИП в Java тоже были только такие.
Аноним 20/05/16 Птн 09:50:28 #449 №748164 
>>748152
Кто тебя просит её использовать? Пиши в процедурном стиле на здоровье, если тебе только лямбды нужны.

>>748155
Дык в gcc вроде так и впилили вложенные ф-ции, правда очистить код не сильно помогают.
Аноним 20/05/16 Птн 10:30:19 #450 №748191 
>>748124
>Мне хромиум скомпилять надо.
Не знаю, как в генту, но во фряхе он компиляется ПИЗДЕЦ долго. Полдня его собирал, в то время как firefox собирается около часа, если не меньше. Возможно, также хром криво на фряху портирован: он всё время глючит, подтормаживает, падает. Это пиздец, какое-то говно, а не браузер. Не советую его компилять в принципе.
Аноним 20/05/16 Птн 10:32:14 #451 №748193 
>>748152
>Объектно Ориентированная Параша
Лямбы - функциональная параша.
Аноним 20/05/16 Птн 10:32:34 #452 №748195 
>>748193
>лямбды
Аноним 20/05/16 Птн 10:51:05 #453 №748201 
>>748193
Нет, это монады, каррирование и прочее ненужное говно. А лямбды позволяют писать краткий и лаконичный код, при этом полностью прозрачный для байтолюба.
Аноним 20/05/16 Птн 10:54:23 #454 №748204 
>>748164
> Кто тебя просит её использовать? Пиши в процедурном стиле на здоровье, если тебе только лямбды нужны.
В крестах лямбды - это объекты.

> Дык в gcc вроде так и впилили вложенные ф-ции, правда очистить код не сильно помогают.
1. Это не на уровне стандарта.
2. Анонимных функций так и не завезли, потому и использовать неудобно.
Аноним 20/05/16 Птн 11:04:59 #455 №748214 
>>748204
>>В крестах лямбды - это объекты.
По подробнее.
Аноним 20/05/16 Птн 11:10:12 #456 №748222 
>>748214
Это функторы с перегруженным operator()()
Аноним 20/05/16 Птн 11:17:34 #457 №748232 
>>748222
Ясно, спасибо.
Аноним 20/05/16 Птн 11:18:47 #458 №748233 
>>748130
>очередной фп-петушок без мыла лезет в язык богов и дидов
Лол. Чему им в своих языках не сидится?
Аноним 20/05/16 Птн 13:09:54 #459 №748310 
>>748233
Мне не нравится ФП, аутист, мне нравятся лямбды.
Аноним 20/05/16 Птн 13:10:32 #460 №748311 
>>748233
>Лол. Чему им в своих языках не сидится?
они прямо как вегатарианцы
Аноним 20/05/16 Птн 13:21:50 #461 №748317 
>>748311
C ("няшная сишка") - самый простой и убогий язык из тех, что используются на практике. Более убогий - только брейнфак. Единственное выразительное средство - копипаст, для автоматизации которого есть даже специальный второй язык-препроцессор. Делает решение любой задачи нетривиальным, так что его решение задач с его помощью может требовать высокой квалификации. Тем не менее, типичная сиблядь ничего не знает и не умеет. Даже дибиловатый обгвидок знает, помимо гвидопыха, еще и сишку, но сиблядь не знает ничего кроме нее. Языком владеют почти все, но только сиблядь этим знанием годится, остальные стыдливо скрывают. Также сиблядь может ошибочно считать что знает C++ или несуществующий язык C/C++.

Указывать сиблядям на проблемы языка бесполезно. Кроме сишки сиблядь ни хуя не знает и не умеет, а на любое обвинение у сибляди есть универсальный ответ - "криворукость". Этим сиблядь как бы намекает, что что все вокруг криворуки - т.е. сотрудники микрософта и интеля, пишущие кривые драйвера и библиотеки, прыщебляди, пишущие дырявое ведро своей системы вот уже не первый десяток лет, просто другие сибляди из соседнего подвала полусвовковой шаражки, в которой сиблядь работает. А вот сама сиблядь - сука граф Шарль Ожье де Бац де Кастельмор д’Артаньян среди педерастов, владеющий техникой левитации, предсказания будущего и написания небыдлокода на сишке. К сожалению, простым смертным едва ли не удастся увидеть творения сенсея, так и будут они работать с глючным говном криворуких интелевских и микросовтовских инжеренов, внезапно падающим от какого-нибудь buffer overflow, несмотря на зиллионы человекочасов, проёбанных на его тестирование и отладку.
Аноним 20/05/16 Птн 13:50:17 #462 №748338 
>>748204
Тебя смущает неявное использование классов? Не православно?
>Это не на уровне стандарта.
На С кроме системщины ничего не пишут, какой смысл поддерживать портируемость между компиляторами?
Аноним 20/05/16 Птн 14:06:13 #463 №748345 
>>748317
Професиональные сишники, как правило, хорошо владеют всеми мейнстримовыми парадигмами.
Аноним 20/05/16 Птн 14:08:12 #464 №748347 
>>74831
Ты сейчас описал школьника, максимум - студента первого курса
Аноним 20/05/16 Птн 14:08:43 #465 №748349 
>>748347
Сюда >>748317
Аноним 20/05/16 Птн 14:08:55 #466 №748350 
>>748345
Профессиональный - зарабатывающий на этом.
Я зарабатываю сями, но я тупой байтослесарь, не могу в ООП.
Аноним 20/05/16 Птн 14:39:01 #467 №748366 
>>747926
>>747926
Функция будет размещена где-нибудь подальше от часто используемых функций, что даст выигрыш в кеше кода и данных, когда программа будет исполняться процессором, то есь не получится так, что функция, которая вызывается один раз за все работу программы была размещена где нибудь посередине секции, где исполняется 90% программы.
Аноним 20/05/16 Птн 14:59:04 #468 №748382 
>>748366
Но ведь на норетурнах можно хоть полностью программу написать...
Dmitriy 20/05/16 Птн 15:03:02 #469 №748386 
>>748191
Компилял не раз уже, относительно шиндовса прирост производительности в 2-4 раза, бывало за час-два собирал, бывало за три, там разные флаги есть, если надо сократить время компилежки то можно использовать системные библиотеки и программы.
Dmitriy 20/05/16 Птн 15:05:24 #470 №748388 
>>748386
На 2 ядрах штеуда компилял, анон с софтача на фряхе тоже целый день собирал апач (пека древняя вроде)
Аноним 20/05/16 Птн 15:12:55 #471 №748396 
14637463755690.png
Привет, анон. Помоги, пожалуйста, с реализацией алгортима Дейкстры для графа (https://ru.wikipedia.org/wiki/Алгоритм_Дейкстры). Пытаюсь реализовать его с использование LINQ-запросов, поэтому прошу помощи здесь.

Алгоритм Дейкстры весьма прост (для тех, кто с ним не знаком): Вес начальной вершины принимаем за ноль, вес остальных вершин за бесконечность. Находим на графе все вершины, соединенные со стартовой одним общим ребром и по порядку проверяем, является ли вес каждой такой вершины бОльшим, чем вес начальной вершины + вес ребра их соединяющего. Если является, то присваиваем вершине новое значение, равное весу начальной вершины + весу ребра их соединяющего. После того, как провернули такое действие со всеми связными вершинами, выбираем из них ту, что получилась с минимальным весом и принимаем ее за начальную, проворачивая с ее связными вершинами тоже самое.

Вот только "соседом" второй по счету вершины сразу же станет изначальная вершина с нулевым весом, а следовательно в конце простановки весов связных вершин именно эта первая будет принята за минимальную и она снова станет текущей, и так по кругу с очевидным зацикливанием. Можно же добавить вершине метку посещенности и впоследствии выбирать из соседей МИНИМАЛЬНУЮ И НЕ ПОСЕЩЕННУЮ, но в один момент таких вершин может оказаться 0, однако при этом на графе могут либо остаться не посещенные вершины, либо вообще не дойти до финиша. Как с этим быть?
Или граф может быть пройден от начала до конца, но по неверному маршруту, а когда алгоритм возвращается к не посещенной вершине, чтобы это исправить, он снова нихуя не получает, так как все связные с этой вершиной вершины уже были посещены, как на пикрелейтеде вершина 4 во втором варианте.

Вот код, хотя я тут намешал и использование списка не посещенных вершин, и использование. Метод getTops() возвращает список связных, но не посещенных вершин, его описывать не стал: http://pastebin.com/kKhUcrN9

Как решить ситуацию, чтобы можно было пройтись по всем вершинам, но при этом без зацикливания, то есть возвращения в уже посещенные связные вершины, но имеющие маленький вес.
Аноним 20/05/16 Птн 15:21:56 #472 №748403 
>>748396

Обосрался с картинкой, в Варианте 2 между вершинами 3 и 4 на ребре вес 6.
Аноним 20/05/16 Птн 15:24:44 #473 №748406 
>>748403

А между 4 и 5 наоборот 1.
Аноним 20/05/16 Птн 15:42:48 #474 №748417 
>>748396>>748403>>748406

Я еще и с тредом обосрался, ну что за стыдоба. Забыть бы это поскорее.
Dmitriy 20/05/16 Птн 15:45:07 #475 №748419 
http://hackaday.com/2012/12/14/leveraging-the-gpu-to-accelerate-the-linux-kernel/
http://www.phoronix.com/scan.php?page=news_item&px=OTQxMQ
https://news.ycombinator.com/item?id=2521820
https://github.com/wbsun/kgpu
https://github.com/wbsun/kgpu/wiki/KGPU---Home
https://www.flux.utah.edu/project/kgpu
Посему такую перспективную хрень как KGPU делали энтузиасты на коленке, а нвидия забила хуйца на такую возможность?
Аноним 20/05/16 Птн 16:02:59 #476 №748439 
>>748419
В чём она перспективная? Быстрее устроить апокалипсис, прогрев видюхами атмосферу как следует?
Аноним 20/05/16 Птн 17:21:30 #477 №748506 
>>748366
> функция будет размещена где-нибудь подальше от часто используемых функций
На самом деле функцию размещать будет линкер, только у линкера нет информации о _Noreturn. А вот компилятор на основании этого атрибута может упростить control flow вызывающей функции, может оптимальнее использовать регистры, особенно под какой-нибудь x86, где их мало.
Dmitriy 20/05/16 Птн 17:32:21 #478 №748516 
>>748439
Распаралеленое ядро на тысяче процессоров, никакого перегрева не будет, большой нагрузки на одно ядро не возникает. Для ГПУ оно как фоновая задача будет
Dmitriy 20/05/16 Птн 17:33:11 #479 №748517 
>>748439
Сильно ускорит работу серверов.
Аноним 20/05/16 Птн 17:37:25 #480 №748520 
>>748516
Ты иди хэши поперебирай на гпу, и расскажи что перегрузки быть не может.

>>748517
Они не имбицилы, и точно есть причины почему даже гугловые сервера работают на cpu.
Dmitriy 20/05/16 Птн 17:42:19 #481 №748524 
>>748520
Потому что на гпу пока что только ядро научились исполнять.
Аноним 20/05/16 Птн 19:50:01 #482 №748646 
14637630012420.png
А вы отделяете оператор обращения к полю структуры по указателю стрелочку пробелами? Заебись, по-моему.
Аноним 20/05/16 Птн 19:58:00 #483 №748649 
Блджад, почему мой макрос для свапа, не обнуляющий равные элементы, вызывает ошибку?

#define swap (a, b) ((&(a) == &(b)) ? (a) : ((a)^=(b),(b)^=(a),(a)^=(b)))
Аноним 20/05/16 Птн 20:01:01 #484 №748650 
>>748646
Точку тоже отделяешь?
Аноним 20/05/16 Птн 20:05:16 #485 №748655 
14637639163130.png
>>748650
Неа. Просто такая стрелочка напоминает математические функции, от которых я тащусь.
Аноним 20/05/16 Птн 20:09:57 #486 №748658 
>>748655
...только вот обозначает совсем другое. В итоге запись выглядит странно.
Аноним 20/05/16 Птн 20:31:40 #487 №748668 
>>748658
Выглядит странно как раз её отделение. Так она похожа на какую-то лямбду, вместе видно что это член структуры.
Аноним 20/05/16 Птн 20:35:40 #488 №748671 
>>748649
С таким форматированием сложнее вспомнить, что у -> приоритет выше, чем у +. Кто-нибудь невыспавшийся обязательно запутается.

>>748649
Пробел после swap. Это препроцессор, детка.
sageАноним 20/05/16 Птн 20:39:07 #489 №748672 
>>748649
Алсо, мало того, что у тебя тут овердохуя операций, так еще и бранч.
Аноним 20/05/16 Птн 22:04:12 #490 №748755 
>>748517
но в сервера не ставят видеокарты
Аноним 20/05/16 Птн 22:12:51 #491 №748761 
А это какой-то стандартный способ документирования кода или только для их системы?

http://www.oryx-embedded.com/doc/rc4_8c_source.html
Аноним 20/05/16 Птн 22:19:04 #492 №748766 
>>748761
Ну какбэ это JavaDoc, а документацию по нему генерирует Doxygen.
Аноним 20/05/16 Птн 22:32:12 #493 №748775 
>>723844 (OP)
>- TCC: очень маленький компилятор с багами и неполной поддержкой C99.
Тут более значимо что он интерпретатор
Аноним 20/05/16 Птн 22:41:09 #494 №748780 
>>748775
Он не интерпретатор, с ключом -run и/или с shebang в исходнике он компилирует в память.
Аноним 20/05/16 Птн 23:41:23 #495 №748817 
>>748646
Я нажимаю Ctrl+K, Ctlr+F в студии. Делаю автоформат кода и ебу себе мозг.
Аноним 20/05/16 Птн 23:43:14 #496 №748818 
>>748649
Курс на степике детектед.
Аноним 21/05/16 Суб 05:47:31 #497 №748971 
Посоны, помогите. У меня есть указатель на массив. Хочу в него записать данные из строки. Как это сделать?
Аноним 21/05/16 Суб 06:19:35 #498 №748981 
>>748971
Тащем-то все просто берешь и записываешь.
посимвольно
гугли арифметику указателей
Аноним 21/05/16 Суб 06:24:25 #499 №748982 
>>748345
Функциональную байтослесари не осилили, судя по бугурту. Ни один человек, осиливший Haskell, никогда не вернется в байтопарашу.
Аноним 21/05/16 Суб 07:30:11 #500 №748998 
>>748982
ну и слейся отсюда гомункул
Аноним 21/05/16 Суб 09:32:47 #501 №749027 
>>748982
И где собираются работать "невернувшиеся"?
Аноним 21/05/16 Суб 09:50:02 #502 №749031 
>>748982
Lisp > Haskell
Аноним 21/05/16 Суб 09:52:08 #503 №749032 
Где можно скачать компилятор Keil?
Аноним 21/05/16 Суб 09:55:32 #504 №749034 
>>749032
http://www2.keil.com/mdk5/
Аноним 21/05/16 Суб 09:55:34 #505 №749035 
>>749032
Это правда, что он шароварный, и нужен кряк?
Аноним 21/05/16 Суб 09:59:43 #506 №749037 
>>749035
lite вроде бесплатный. А нахуй он тебе вообще?
ПЕРЕКАТ Аноним OP 21/05/16 Суб 12:34:17 #507 №749123 
>>749121 (OP)
>>749121 (OP)
>>749121 (OP)
Аноним 23/05/16 Пнд 09:39:20 #508 №751239 
поделитесь инфой по OPC
comments powered by Disqus

Отзывы и предложения