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

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
C Programming Language.png78 Кб, 792x1023
C Programming Language #41 /clang/ # OP 1362799 В конец треда | Веб
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь https://ideone.com/ или https://pastebin.com/ для вставки кода, если он длиной больше нескольких строк или содержит [​i​] или ∗.

Что читать:

- Brian Kernighan, Dennis Ritchie "The C Programming Language": http://www.cypress.com/file/56651/download
- Stephen Prata "C Primer Plus, 6th Edition" (2014): относительно свежая, знает про C89/C99/C11, описывает различия, объемная (около тысячи страниц), годная, с вопросами, упражнениями и ответами. Читать после K&R или до.
- Zed A. Shaw "Learn C the Hard Way" (2015): годное пособие для гуманитариев для гуманитариев!
- Немного примеров хорошего стиля: http://www.oualline.com/books.free/style/index.html
- ООП, например: http://www.cs.rit.edu/~ats/books/ooc.pdf
- Стандарт ISO/IEC 9899:1999 (он же C99): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf (драфт)
- Стандарт ISO/IEC 9899:2011 (он же C11): http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf (драфт)
- man/Dash/zealdocs

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

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

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

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

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? у нас в сишечке их гораздо больше, просто они лучше спрятаны, немного байтоебли и непонятно откуда взявшаяся глава про старинные плюсы. Читать в качестве сказки на ночь (на пару вечеров хватит).

Richard M. Reese "Understanding and Using C Pointers. Core Techniques for Memory Management" (2013) - почитать, вкатиться в указатели.

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

Paul Deitel, Harvey Deitel "C for Programmers with an Introduction to C11" (2013)

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

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

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

Онлайн-утилиты:

- https://godbolt.org/ - Compiler Explorer позволяет посмотреть выхлоп компиляторов для введенного куска кода (больше полусотни разных версий компиляторов).
- http://cdecl.org/ - С Gibberish ↔ English помогает читать сложные сишные декларации.

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

- №38: https://arhivach.ng/thread/419611/
- №39: https://arhivach.ng/thread/423396/
- №40: https://arhivach.ng/thread/428550/
2 1362802
>>62799 (OP)
Скажите уже раз и навсегда, чё юзать на линуксе шланг или гсс
3 1362803
>>62802
То, что тебе больше нравится. Если похуй - подкинь монетку.
4 1362805
5 1362867
>>62802
Ох уж этот пердо-рабский менталитет. Пока было одно от царя и бога, они спокойны, как только появился выбор из целых двух вариантов - ох, ах, мам, янизнаю что выбрать, пасаветуйти за меня, мне самому слишком сложно, не привык думать и решать за самостоятельно.
6 1362877
>>62867

> Ох уж этот пердо-рабский менталитет


А был быфронтендский сказали бы "ох блять, теперь придется в джвух проверять как код конпилируется"
7 1363221
>>62802
Я юзаю tcc, но я на окнах. На линуксах тоже его бы юзал, наверное.
9 1363238
>>63231
default:
puts("Напиши свой компилятор, с блэкджеком и шлюхами!");

да, я знаю, что в эту ветку не зайдет, потому и дописал этот вариант не стоит вскрывать эту тему
10 1363239
>>63238
Блядь, break; забыл.
11 1363240
>>63221
Когда-нибудь ты вырастешь и перестанешь. Это >>63231 тоже ты? Вот если бы поставил на первое место tcc, было бы тонко. Угадай, какое число сгенерирует твой код, если RAND_MAX == INT_MAX (в glibc, например)? Не делай так больше.
12 1363242
>>63240
Сука, а я-то думал, чому мой детектор тревогу бьет на этот кусок кода.
13 1363333
>>63231
ну бляяяд, почему бы не просто rand() % 3 ??
14 1363384
>>63240

>Угадай, какое число сгенерирует твой код, если RAND_MAX == INT_MAX (в glibc, например)?


Какое?
>>63333
Хм, так действительно проще.
15 1363503
>>63384

> Какое?


Либо результат, умноженный на три, будет меньше INT_MAX просто потому, что он меньше, либо будет переполнение, и при переполнении остаток тоже будет меньше INT_MAX. Значит, при делении на INT_MAX ты всегда будешь получать ноль. Ну разве что ты найдешь компьютер, где INT_MAX делится на 3, тогда ты ради разноообразия будешь изредка получать 1, но не больше.
16 1364023
Программисты хуесосы. 30 лет языку и нет ни одной нормально написанной книги.
image.png95 Кб, 677x402
17 1364025
Почему бичи не смогли переносы нормально расставить в учебнике? Ну неужели нельзя хотя бы в книжке форматировать код так чтобы его было удобно читать?
18 1364026
>>64023
Иди нахуй.
19 1364033
>>64023
что-то ты не выспался
20 1364092
Как написать интерпретатор своего охуительного языка прогромирования на си?
21 1364145
>>64092
Лучше LLVM
22 1364148
Помогите плиз. Лучше вас на доске в этой байтоебле наверно никто не разберется.
Мне нужно читать бинарные файлы и редактировать их.
Например.
Есть картинка в raw-формате. Мне нужно считать из этой картинки величины для всех пикселей и поместить их в соответствующий двухмерный массив. Вроде бы простая задачка, но я не понимаю, как читать из бинарника по одному байту. Работал только с текстовыми файлами, а там чтение построчно, все проще.
23 1364157
>>64145
Виртуальные машины меня пока не интересуют. Я хочу сделать удобный консольный калькулятор с блекджеком и шлюхами, а то обычный гуишный совсем не удобный.
24 1364159
>>64148
А потом что с этим массивом будешь делать?
25 1364160
>>64159
Неважно. Мне не только raw-файлы надо читать, это только как пример.
В raw-файле каждый байт - это 1 пиксель, число в байте - это интенсивность белого цвета. Мне надо как то побайтно прочитать.
Как это сделать? Сначала записать в память все содержимое файла, а потом уже побайтно отсекать?
26 1364175
>>64160
Да и так и так можно, лол. Си разрешает к массиву обращаться хоть как к одномерному, хоть как к трехмерному, етц. Главное, за пределы не вылететь.

В общем, Интернет тебе в руки, fread в поисковую строку и удачи.
27 1364180
>>64160
Я такое в сишке ни разу не делал, тоже интересно. Делал подобное в питоне (он совсем тормозной для этих дел) и дишке. В дишке все замечательно получалось - читал файл сразу крупными кусками, обрабатывал и складывал массив, потом выплевывал в другой файл. Правда потребление памяти было огого, потому что я что-то не оптимально делал, но работа по сравнению с питоном просто сказочная была.
28 1364182
>>64160
Вот стандартная библиотека ввода-вывода, там много всяких полезных функций для твоей задачи.
https://www.opennet.ru/docs/RUS/libc/libc-3.html
29 1364187
30 1364189
>>64175
>>64180
>>64182
Ок, спасибо.
Теперь другой вопрос. Что делать, если структура бинарника примерно известна, но размер данных внутри структуры непостоянный?
Например, такая структура: сначала идет текстовый заголовок, затем количество байтов в Int32, которое занимает эта структура, затем сами данные, которые могут включать в себя другие заголовки и т.д., а также имеют непостоянный размер.
Как читать данные из таких структур? Искать в цикле текстовый заголовок, а затем читать указанное количество байт?
15524256553340.jpg65 Кб, 604x587
31 1364216
Есть ли хороший пошаговый гайд по С?
Хочу пройти и выложить потом на гите.
32 1364219
33 1364222
'\0' он же NULL он же 0?
.png37 Кб, 677x575
34 1364241
>>64157
Вот начал. Правильно прочитал всю строку с пробелами? Теперь нужно научиться как распарсить строку на числа и команды и посчитать то что там написано. Сначала простые арифметические действия +-*/.
35 1364247
>>64241
За детерминированные конечные автоматы пояснить сможешь?
sage 36 1364248
>>64025
К счастью в Си можно большую часть кода (кроме препроцессора) писать хоть в одну строку. А книжка - это скан кривой, наверное.

>>64148

> не понимаю, как читать из бинарника по одному байту


Зачем тебе по байту?
buffer = malloc(width ∗ height);
fread(buffer, 1, width ∗ height);
адресуешься buffer[y ∗ height + x]

>>64189
Читаешь несколькими fread. Строки побайтово. Можешь еще прочитать или смапить (mmap()/MapViewOfFile()) файл целиком и потом парсить его из памяти. Это проще, если файлы относительно небольшие.

>>64222
NULL - это (void ∗) 0, укозатель. '\0' - это целочисленная константа (int) 0, а в крестах (char) 0.

>>64241
Возьми любую книгу про компиляторы. Можешь книгу дракона, можешь какое-нибудь говно попроще типа https://compilers.iecc.com/crenshaw/
sage 37 1364251
>>64248
buffer = malloc(width ∗ height);
fread(buffer, 1, width ∗ height, fp);
адресуешься buffer[y ∗ width + x]
Пиздец я.
38 1364263
>>64248
>>64251
Благодарю.
39 1364268
Ребят, в книжке было задание, в котором просили посчитать сумму двух гармонических рядом. В одном ряду все члены положительные, во втором отрицательные только четные. Сделал тут прогу, работает, но не покидает ощущение, что я забыдлокодил. А, ну и оператором if пользоваться было нельзя. Поясните, быдлокод это чи не? https://pastebin.com/raw/Z8xTAD1Z
40 1364269
>>64268

>рядов

41 1364311
>>64023
Зачем нужны вообще эти книги по языкам? Серьезно, какой смысл их читать, если без четкого понимания что ты хочешь делать все это бесполезное чтиво, а с четким пониманием тебе скорей всего не по языку придется гору литературы изучать, а по всяким ручкам в ос, api, особенностям железа. Сказать по правде мне кажется большинство программистов осваивали языки постольку поскольку, поэтому и не могут внятно ответить на извечный вопрос со стороны непосвещенных "с чего начать". У человека просто появляется желание что то реализовать он берет чужой кусок кода начинает его ковырять методом тыка, гуглить постепменно начинает вникать как это работает, усваивает минимальные азы, а потом садится и обклажившись документацией по системам сборки, фреймворкам, библиотекам, штурмует мозгом стену до переопухания. Язык постигается попутно попутно, дрочь на них мне лично видится странным, а книги по языкам я вообще не понимаю для кого.
42 1364314
>>64268

> быдлокод это чи не?


Вложеные цыклы же
1547166564688.PNG179 Кб, 500x285
43 1364318
44 1364330
>>64311
Твоя проблема в том что ты утилитарист. И вообще как можно знать что ты хочешь не зная как и что ты можешь?
45 1364378
>>64330

> как можно знать что ты хочешь не зная как и что ты можешь?


Это вопрос пустопорожний - с чего ты взял что надрочив си по заданиям в книжке и написав хэловорд ты необходимые знания c умениями приобрел? Скажешь тебе (например) - иди вон фильтры для изображений запили (регулируемую яркость, сепию, grayscale) ты так и так их просто так не напишешь, ты пойдешь перебирать тонну всякой хуйни по битмапам и особенгностям работы с ним и еще всякой дополнительной херни связанной с тем куда там это все вывести и через что настройки реализовать. И так происходит постоянно, даже владея языком в совершенстве эта поебень не заканчивается никогда, и чтобы этой ебатней заниматься нужен позитивный стимул в виде идеи и желинии ее реализовать.
46 1364379
>>64378
Ну раз ты скозал что нужон, значит так и есть. Это звучит примерно "чтобы заниматься радиотехникой надо хотеть собрать айфон", бредово короче.
47 1364381
>>64378
из-за перфекционизма не могу взяться за свой пет-проджект, потому что неуверен, что в совершенстве знаю язык, чтобы его написать. Это нормально?
мимо
48 1364388
>>64381
Нет, не нормально, делай его, делай как можно более лучше, нет предела совершенству.
Иначе ты его никогда не начнёшь.
49 1364399
>>64379

> звучит примерно "чтобы заниматься радиотехникой надо хотеть собрать айфон", бредово короче.


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

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

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


Вот уж странное высказывание! Чем плоха цель придумать и реализовать йобу? Язык это же инструмент для созидания, а не самоцель.
51 1364410
>>64399
Ты потерял нить разговора. Перечитывай.
52 1364418
>>64404
Ничего плохого, у меня на самом деле тоже есть подобная цель, но она долгосрочная и может быть я ее никогда не реализую, но в любом случае путь к ней усеян маленькими квестами, как связанными ( то есть опыт в создании которых пригодится и продвигает меня ближе к цели) так и не связанными, то есть они конечной цели не дадут ничего но помогают сейчас прокачать скилы и пополнить знания.
Что касается айфонов то я имел в виду идеи вроде "вот я сейчас стану великим погромиздом, напишу какой нибудь телеграм и заживу" диструктивные как по мне
53 1364432
Что вообще интересного можно реализовать на С? Для новичка. Всякие хелл ворлд умею.
54 1364435
>>64432
автоматику или либу какую нибудь
55 1364442
>>64435
Чуть подробнее.
56 1364465
Как сделать, чтобы char выводился как шестнадцатеричное двузначное число, а не как символ?
57 1364477
>>64465
%X, если мне память не изменяет.
58 1364478
1364465
printf("%02x\n", ch);
59 1364519
>>64432
Попробуй базу данных. Или если совсем новичок, то напиши свою лог ин процедуру на одном стракте и постепенно попробуй к ней прикрутить больше фич.
60 1364568
sage 61 1364569
>>64432
Что вообще интересного можно реализовать отверткой? Для новичка. Всякие болты крутить умею.
62 1364662
>>64381
Владеешь ли ты русским в совершенстве? Может, не стоило писать этот пост?
63 1364684
подскажите онлайн компилятор для обучения, совместимый с ansi/
64 1364692
>>64662
овладеваешь русским в совершенстве->становишься русским->садишься на бутылку
Нет, спасибо.
65 1364707
Можете поделиться ссылкой на какой-нибудь сравнительный обзор компиляторов? Плюсы, минусы каждого и т.п.
66 1364727
>>64707
Для крестов юзай шlang. Если си для тебя лишь инструмент для вката - юзай что угодно, хоть вижуал студию. Если же собираешься работать с си то есть либо ембедить никсы в весы в пятерочке, либо писать алгоритмы для микроволновок за 30к в месяц, или поддерживать схожее легаси говно из 90-ых то GCC, ибо он написан как раз под стандарты 89/99, на которых то говно и работает.
sage 67 1364757
>>64684
ideone.com (выбираешь просто C), wandbox.org (можешь вписать ключик -ansi даже, если хочешь)
68 1364762
А есть человеческая книга по си, написанная без ебланских ошибок, с нормальным форматированием и чтобы задачи из неё нормально компилились без ошибок?
69 1364766
>>64762
Нет, таких книг не существует.
70 1364778
>>64727
Значит GCC, спасибо, с ним и работаю. В целом мне интересно почитать чем они отличаются, не совсем поверхостно, не для новичков, но и не совсем в дебри уходить. Об архитектуре представление имею, с Си знаком, но не в качестве основного языка, а на уровне написать биндинг к СИшной либе.
71 1364836
>>64778
Ну а что именно тебя интересует?
Т.к. шланг - поделка изначально выступавшая в роли догоняющего, их мануал написан в стиле чем мы лучше GCC, поэтому если тебя интересует что-то не конкретное, то могу только посоветовать полистать менпейдж.
Я лично юзаю GCC, т.к. на старых машинах он дает большую производительность. Преобразуя код в нижние уровни он пытается его отпимизировать для минимальных затрат ресурсов. Очевидно в этой фиче GCC нет смысла если ты пишешь Си код для 64 битных процев ЩТО тут ты либо долбоеб либо школьник вонаби реверсинженер ловитель пакетов. Плюс многие платформы уже перестают поддерживать GCC (спасибо JVM и новым мультиязыковым компилерам);
sage 72 1364921
>>64762
Прата. Тебе дрочитьполучать эстетическое наслаждение или все же язык учить?
image.png8 Кб, 306x96
73 1364925
>>64921
Хочется сесть сразу на 2 стула, чтобы с джеком дениелсом и флорентиной не спеша покуривая сигару читать книгу перед камином, получать удовольствие и учить язык за одно.
Сейчас читаю "программирование на си для начинающих" перри-миллер. Вроде книга хорошая, но непонятно почему в книжке main(), а в компиляторах int main(). Учитывая что до этого я только бейсик в школе все совсем сложно.
74 1364929
>>64925
На си ты не заработаешь на Джек дениелс и флорентину.
75 1364940
>>64925
"int main(void);" - полный прототип (в реальных программах, конечно, делать прототип main не стоит)

"main()" - просто упоминание функции. Скобки добавляются чтобы ты понял, что это не просто что-то main, а функция main.

int в начале - тип возвращаемых функцией данных. В некоторых всяких хуйжективхуйси можно опускать у main(); возвращаемое значение. К самому си это отношения не имеет. Просто виндовские костыли.
76 1364943
>>64940
add:
в некоторых говнокомпиляторах (пробабли после 99 стандарта) можно не указывать возвращаемое значение main(), и они по умолчанию проставят тебе int, только реально этим пользоваться -- пиздец какой друной тон, придуманный долбоебами из JVM подобных языков, который потом еще и крестовики переняли. Код с такой хуйней как плевок в лицо будет воспринят всеми нормальными людьми. Что gcc по 99 стандарту, что шланг запрещают опускать возвращаемое значение у main, поэтому просто восприми это как опечатку.
77 1364950
>>64940
Это понятно что инт это тип данных.

>Что gcc по 99 стандарту, что шланг запрещают опускать возвращаемое значение у main, поэтому просто восприми это как опечатку.


Ясно понятно, буду иметь ввиду.
sage 78 1364951
>>64943
При чем тут говнокомпиляторы, если это стандартный синтаксис для C89? Поддерживаешь C89 - поддерживаешь неявный инт, указание любых аргументов для функций с пустыми скобками, декларации аргументов перед { а не в () и всю прочую хуйню. Даже если тебе не нравится. Да, это старый синтаксис, писать так не стоит, но знать о нем нужно - еще встречаются исходники, написанные в таком стиле.
79 1364952
>>64925
Запомни щенок, блять. Всегда пиши только так:
int main(int argc, const char argv) {...}
Когда будешь вызывать свою программу из шелла или из командной строки, то int - это всегда будет код завершения твоей программы. Примечательно, что командная строка оперирует не логическим состоянием а уровнем ошибки и поэтому в комнадной строке 0 - это правда нормальное завершения процесса а 1 - это ложь ненулевой уровень ошибки и соотвественно всё, что выше единицы - это ложь. Так как на уровень ошибки отводится 1 байт, то уровни ошибки от 0-255. Дальше.
int argc - arguments count это количество аргументов, которые твоя программка получает, когда вызывается из командной строки.
const char
argv - это arguments values значения аргументов, которые передаются при вызове из командной строки. Конст, потому что меня в универе препод учил, что нельзя изменять входные данные программы.
Шелл сам определяет как разбиваются аргументы командной строки. Как правило это пробел, но можно и что-то индусское накостылить.

А ещё запомни щенок. Явное, лучше чем явное. И тебя никто не стукнет по рукам, если ты напишешь лишнего, но запутанного.
80 1364953
>>64952
блять, я забыл про звёздочки.
Ну, короче перед argv две звёздочки.
81 1364954
>>64952
Да блять. А ещё явное лучше чем неявное
фикс
sage 82 1364955
>>64950

> шланг запрещают опускать возвращаемое значение у main


Как же оно тогда без ворнингов-то конпелируется? https://wandbox.org/permlink/tiXtDxWXuSc2vBWA

>>64952

> командная строка оперирует


> уровнем ошибки


Зависит от реализации. Сишка вообще знает только о EXIT_SUCCESS и EXIT_FAILURE, причем FAILURE может быть и 100500, а не 1.

> const char *argv[]


Нету const в стандарте. Туда можно писать, и пишут.

> препод учил


Это его половые проблемы.
83 1364967
>>64952
Ну и нах мне аргументы, если я их не обрабатываю?
Мимо
84 1364969
>>64952

>const char argv[]


никакого конста, ибо храниться параметр будет в любом случае все время работы main(), а даже его возможная перезапись никак не отразится на безопасности работы с памятью. конечный юзер сам по себе никуда ничего не вводит, зпускается все чаще всего make/exeс хуйней, а значит сломать твою прогу таким образом обычному юзеру будет тяжело.

>argument values


arguments
vector*;

>>64955

>9 кланг созданный в эпоху джава детей и вкатывальщиков не могущих осилить даже поинтеры в ОЧЕНЬ СЛОЖНОМ си


Уверен, что ниже 9 версии не будет ни одного без ворнинга
sage 85 1364999
>>64969

> Уверен, что ниже 9 версии не будет ни одного без ворнинга


И в предыдущих не будет ворнингов. И в гцц тоже.
86 1365003
>>64999
Только что твой же код на ванде запустил со всеми гсс и всеми клангами кроме 9-ых, и ВЕЗДЕ выдало ворнинг.
-Werror передает привет.
sage 87 1365010
>>65003
Ну ок, ты прав. Но код все равно валидный.
88 1365014
>>65010
Никто и не говорит, что невалидный. Дело в стандартах (не только писанных, но и общепринятых) Писать int перед main для си прогера должно быть то же самое, что саму точку входа называть main и никак иначе — бетонный стандарт.
89 1365019
Как узнать, есть ли в стандартном вводе еще символы, не изменяя его?
sage 90 1365020
>>65014

> должно быть то же самое, что саму точку входа называть main


Периодически обзываю точку входа start, когда пишу под bare metal. Как мне жить-то теперь?

Алсо, выяснилось, что ворнинги на implicit int есть только в gcc. clang (любой) соответствует стандарту. Вот, например, третий шланг: https://wandbox.org/permlink/tiXtDxWXuSc2vBWA

>>65019
Переносимо - никак, но есть ungetc().
91 1365025
>>65020
Не очень понял что ты имел ввиду, ибо по ссылке открылся аутпут 9 кланга.
Из интереса накатил сейчас на ведро 7-ой кланг и даже без флагов словил ворнинг
sage 92 1365044
>>65025
-std=c89
93 1365048
На чем пишут компиляторы? Думаю запилить свой один для саморазвития, finite state machines знаю
94 1365050
>>65044
Значит реально зависит от стандарта.
Я всегда думал что это приколы компиляторов. Позорно ретируюсь.
95 1365057
>>65048
YACC/Bison + flex + c/cpp
15526237455930.png611 Кб, 2528x1990
96 1365094
В чем прикол С? На нем написан https://en.wikipedia.org/wiki/Leap_Motion ???
97 1365097
>>65094
Чё за лип моушен
sage 98 1365145
>>65097
Очередное невзлетит.
99 1365234
Такой вопрос, а что нужно сделать что бы в функцию можно было ссылку на переменную отправить и получить на ней результат из текущей функции?
[CODE]void plus_1(int i) { i += 1; }

int main(void) {
int i = 1;
plus_1(&i);
printf("%d", i); // => 2
}[/CODE]
100 1365235
А хотя нахуй эти сишные приколы можно же i = plus_1(i); обойтись
101 1365264
Анон, у тебя есть что-нибудь почитать на тему AMQP, очередей сообщений, брокеров и т.д.? Всё это по большому счёту FIFO-очередь, где данные со всякими вспомогательными заголовками идут поверх транспортного протокола. Правильно?

Репост из ньюфаг-треда в самый адекватный тред.
102 1365270
Не нашел в шапке ничего про микроконтроллеры и т.д.

Скачал на udemy пару курсов по С и микроконтроллерам, сижу изучаю, вкатился к вам в тред, у вас тут лампово? Как относитесь Embedded программистам?
103 1365304
>>65270
потому что на борде есть целая доска посвященная этому
104 1365318
>>65304
Да нахуй радач, мне больше нравится байты перекладывать.
.png21 Кб, 686x349
105 1365322
Запилил консольный калькулятор, который пока понимает только сложение и вычитание. Как вам? Какие будут рекомендации?
https://ideone.com/ZJ8mdK

Следующий щаг - добавить понимание умножения и деления с их повышенным приоритетом. Как лучше всего это сделать?
106 1365329
>>65322
Ну сначала ищи операции умножения деления, делай их пока ни одной такой операции не останется, после этого у тебя останется привычная строка со сложением вычитанием
изображение.png59 Кб, 1366x728
107 1365347
>>65322
Есть такая штука как isdigit().
И выглядит сильно лучше моего парсера одного файла "Конфига"

Алсо, есть какие IDE получше Code::Blocks? CLion адово тормозной, как и Студии.
108 1365349
>>65347

>IDE получше Code::Blocks


эмулятор термиала с башом.
109 1365353
>>65349
Но это не IDE. И вечно наяривать gcc дохуя файлов -std=99 -Werror -o prog.exe несколько заебывает. Не мейкфайлы и шелл-скрипты же делать ради этого.
110 1365355
>>65353

>Не мейкфайлы и шелл-скрипты же делать ради этого


а что тогда?
111 1365356
>>65355
Я ж виндоребенок. Мне бы нажать кнопочку "собрать" чтобы, собственно, собрать.
112 1365367
>>65329
Тогда надо будет либо загонять весь ввод в строку и работать уже с ней - сразу появляется ограничение на длину строки, либо делать длинные стеки под числа и операторы - тоже появляется ограничение на длину стека. Хочется сделать без ограничений.
113 1365368
>>65347

>isdigit()


Скорее всего эта функция не пригодится, по крайней мере, пока.
114 1365372
>>65367
Ограничений не будет, если ты используешь динамическую память. Ну не сожрет же твой калькулятор больше ста метров, ну.
115 1365373
>>65356
Тогда зачем тебе си? И да, слабо умножение самому написать, а не просто return f*x?
116 1365377
>>65373
Ну епт, умножение железно поддерживается даже каким-нибудь древним AVR8535. А Си просто нравится. Как и Перл. А вот для Форта я туповат, увы
117 1365378
>>65367
Непонятная ебля у тебя, ну не мое дело, если не хочешь каких-то ограничений стеков и т.д., делай все проще.

Читаешь ввод посимвольно.

1) Читаешь первое число
2) Читаешь знак
3) Читаешь второе число
4) Читаешь второй знак
4.1) Если он плюс или минус, то совершаешь операцию над первым и вторым числом
4.2) Если умножить или разделить, то кладешь в буфер первое число плюс знак
4.2.1) Читаешь следующее число
4.2.2) Совершаешь действие
5) В итоге у тебя в буфере первое число и знак, и результат вычисления - второе число, а это пункт 3 - GOTO 3)
118 1365382
>>65378
Если следующий знак — открывающая скобка, идёшь назад до первой открывающейся, и считаешь все
119 1365384
>>65378
Проебался в 5 пункте, если вышел с 4.1 то GOTO пункт 2, если с 4.2.2 то GOTO 4.

>>65382
Скобок у него вообще нет, это видимо у него следующий пункт.
120 1365388
>>65372

>динамическую память


Блин, я еще не знаю что это. Опять учить. Хочется дела делать.

>>65378
Хм, занятно. Так наверное и сделаю. Спасибо.
121 1365396
>>65388

>Опять учить. Хочется дела делать.


Сфотай свою детскую жопу и выложи на гит
122 1365420
>>65322
Запили ещё парсинг скобок, возведение в степень и возможность задания собственных констант каких-нибудь, а то какую-то хуйню для школьников делаешь.
123 1365424
>>65378
>>65382
Сказали бы сразу ему обратную польскую запись использовать.
124 1365425
>>65424
Ну серьезно, если челик спрашивает как сделать умножение то у него проблемы.
125 1365458
>>63231
Это visual studio 2005? Прям 1 в 1
126 1365461
>>65388
Виртуалку поставь и надрачивай все с нуля. Я когда сам только начинал, пытался умножение сделать через байты. Закономерно проебался, поэтому не советую пытаться. Сделай просто исключения на умножение чисел, типа x>1, x<1 && x>0, x<0, x<-1, x>-1 && x<0 Если решишь ебаться с байтами, для начала сделай только int.
127 1365464
>>65461
Через битысамофикс*
128 1365471
Пните, что читать, если надо считать из текстовика данные и распихать их по структурам, в том числе и вложенным. Проблемы с последним - на третий уровень моих мозгов уже не хватает.
Безымянный.png10 Кб, 771x754
129 1365482
>>65322

> Как лучше всего это сделать?


Рекурсивно разбиваешь выражение, сходя из приоритета операций, от наименьшего к наибольшему. Составляешь дерево: в предка кладешь операцию, в потомков (ты используешь лишь бинарные операции, потому их всегда будет 2) -- разбитые выражения.
Продолжаешь опускаться вниз до тех пор, пока у тебя не останутся лишь числа (если выражение некорректно, то останется некоторая мусорная часть).
Потом проходишься по дереву снизувверх и склеиваешь числа по операции-родителю.
В этот метод легко добавляется обход скобочек (внешние скобочки просто отбрасываются), обработка унарных операций (в случае унарной операции родитель будет иметь одного потомка) и прочее.

Можешь, кстати, написать не калькулятор, а символьное дифференцирование. Оно делается в точности так же, только обход снизу вверх чуть усложнится.
130 1365522
>>65322
Ее величество, Рекурсия беспощадно разбирает подобные задачки. SICP читай.
131 1365524
>>65522

> SICP читай


sicp это мем
132 1365526
Я не понимаю как работает пирамидальная сортировка. Почитал, и все равно не пойму. Может кто нибудь на пальцах разъяснит?
133 1365569
>>65526
Ключевая операция - соединение двух отсортированных последовательностей в одну отсортированную последовательность. Например, есть у тебя 1 3 4 6 7 и 2 5 8. Одновременно двигаешься по обеим, смотришь, где меньше, и складываешь в результат. 1<2 значит выбираем единицу из первой, остается 3 4 6 7 и 2 5 8, дальше аналогично 2, 3, 4, 5, 6, 7, 8. Идея в том, что эти две подпоследовательности в момент соединения гарантировано отсортированы, потому что рекурсия сначала доходит до самых маленьких (по 2 элемента, думаю несложно), и потом соединяет по 4, по 8 и т.д. Степень двойки или нет - не принципиально, просто местами будут по одному, а не по два попадаться.
134 1365576
>>65569
Я не он, но ты хуево объяснил без обид

>Одновременно двигаешься по обеим


После этого перестал читать, невозможно что-то делать одновременно.

Тот кому ты объясняешь, ты это зря ему объясняешь, в гугле стоит ввести heap sort, heap sort для чайников, там будет 1000000 объяснений с разных точек, видео, презентации, иллюстрации, а ты надеешься ему объяснить лучше? Зря время теряешь.
135 1365581
>>65576
Поправлюсь - одновременно в одном потоке.
136 1365583
>>65522

> SICP


Офигеть, вот это забористая книга. Еще есть такие?
137 1365585
>>65458
Это нотпад++.
image.png133 Кб, 1200x1202
138 1365586
>>65585
когда ж вы уже людьми станете
139 1365587
>>65586
Как только добавят возможность его закрыть.
140 1365591
>>65586
Я не учился в музыкалке на пианиста. Да и якобы скорость работы в нем не всегда нужна.
141 1365612
>>62799 (OP)
Сап. Пишу базу данных на си, что-то типа списка одноклассников/одногруппников, пока что сделал только добавление в файл бд. Как организовать поиск через структуры из файла? Я ваще нихуя не пойму. Например вот так выглядит бд в файле:
|NAME USER |2CH |ABU |HUY |
|NAME USER |2CH |ABU |HUY |
а так выглядит структура:
typedef struct _bd
{
char name[25];
char user[25];
char 2ch[20];
char abu10];
char huy30];
}bd;
142 1365613
>>65612
фикс
char abu[10];
char huy[30];
143 1365615
>>65591
соглы. Вим не столько для написания кода, сколько для моментального форматирования текста. Как sed только немного круче. Он в отличие от sed интерактивный. Пожалуй, на этом отличия заканчиваются.
100 stealth.webm285 Кб, webm,
266x426, 0:09
144 1365617
>>65591
Vim с каким-нибудь ClangCompleter и парой десятков плагинов очень классная штука, если у тебя проект не на десятки тысяч строк и полновесная IDE особо не нужна. Просто берёшь и пишешь код.
145 1365636
>>65524
SICP это мем только у дурачков. Когда ты так говоришь, ты выставляешь себя дегенератом
146 1365638
>>65612
Пусть твоя прога хранит как в .json. Популярно и удобно.
147 1365679
>>65636

SICP это книжка для андерградов-первокурсников по основам программирования, ничего больше.
148 1365713
>>65679
Так ее и посоветовали человеку, который не знает, как сделать умножение в программе, хуле ты доебался.
sage 149 1365716
>>65612
Просто читай одну запись за другой с помощью fread. Так работает (работал) DBF. Если захочешь искать быстрее, можешь запилить индексы, например. В простейшем случае ты можешь записать индексы записей, отсортированных по имени, в отдельный файл, а потом двоичным поиском читать индексы и соответствующие им записи.
150 1365848
>>65612

>Пишу базу данных на си


Ты обосрался, используй dBase.
151 1365852
>>65322
Сори, анон, но как-то костыльно написано + логику всю переписывать, если добавлять приоритеты операций, который возникают при использовани скобок, операторов умножения/деления и т.д. Советую почитать про запись выражений в польской нотации. Будет гораздо проще сделать нормальный калькулятор. Строчек в 200, думаю, влезет
152 1365853
>>65852

>который


которыЕ*
153 1365862
А можнго ли в си создать экземпляр функции которая являетсчя ссылкой на другую функцию с двумя переданными аргументами? Ну типа как в жабаскрипте:

function foo (int, str) { };
var f1 = foo.bind(null, 1, ".");
154 1365871
>>65862
Функция это код. Нельзя создавать экземпляр кода.
155 1365875
>>65862
Ты что-то типа такого ищешь?

https://onlinegdb.com/BkzpMPjvV
5874764578.png58 Кб, 607x648
156 1365881
>>65871

> «Поинтерами баловать можно, а баловать кодом нельзя»© The C Language


>>65875
Ух как медленно грузится

Я пытаюсь что-то типа такого https://paste.ofcode.org/78985hzGxnFE25Hhgq9z8M
Естественно код не рабочий
157 1365882
>>65862
В плюсах можно.
В си можно делать через указатель на функцию, да и пожалуй всё, да и то это не совсем то, что ты хочешь.
158 1365883
>>65882
Ну целевой проект просто на Си, не буду же я весь код переписывать. Так то конечно если б с чистого листа, на плюсах делал бы.
159 1365887
>>65883
Если хочешь, можешь сделать через макрос типо.
#define f() foo(2, 4)
Сможешь писать просто f();
Единственное что это всего лишь макрос, который препроцессор развернет перед компиляцией, но это визуально ближе к тому, что ты хочешь хотя бы.
160 1365888
>>65887
О, спасибо. Мне в принципе и нужно для того чтоб в 10 местах одно и то же не исправлять если что, а как там препроцессор подготавливает это уже похуй.
65764375.png51 Кб, 663x304
161 1365975
А почему вот так такое происходит?
Программа компилируется но естественно падает при запуске.
162 1365982
>>65852
Читал про нее - не очень понравилась что нужно дофига конвертировать выражение используя для этого кучу лишних длинных массивов. А тут хоть может костыльно, но всего два коротеньких стека под операторы и под числа, длина которых равна количеству разных приоритетов +1, и всего лишь один проход по выражению.
.png21 Кб, 686x350
163 1365987
Накостылял в калькуляторе умножение с делением.
https://ideone.com/K0zNua
Делал примерно как посоветовали >>65378, логика программы при этом не пострадала, только стеки увеличились на одну ячейку, появилась рабочая область в виде двух смежных ячеек в этих стеках, которую можно перемещать по стеку и добавилась проверка приоритета операторов.
164 1365988
>>65987
Я не эксперт, но 150 строчек многовато
165 1365997
>>65347

>Алсо, есть какие IDE получше Code::Blocks? CLion адово тормозной, как и Студии.


Qt Creator.
166 1366000
>>65522
>>65482
Скобки, наверное на рекурсии буду делать.
167 1366001
>>65997
Не менее тормозным будет.
168 1366004
>>65322
Рекурсивный спуск жи.
169 1366010
Хм, а обработка вложенных скобок практически всегда через рекурсию выполняется, выходит?
Мимо
170 1366012
>>65347
Borland Turbo C
171 1366037
>>66012
Вот этого удвою единственный ценитель среди здешних говноедов.
172 1366047
>>66001
Уверен? Несколько лет его юзаю, нагрузка на память и процессор в разы меньше, чем у CLion.
76463763465.png74 Кб, 991x783
173 1366080
Сейчас ведь IDE не модно, сейчас модно расширеные редакторы типа сублейм, текстмейт, VS Code, Atom и так далее.
174 1366085
>>66080

>поносный бред зумера

175 1366086
>>66080
Я емаксом пользуюсь, мне норм
176 1366088
>>65347
Студия 2008 летает.
177 1366093
>>66088
Хм, а я старые Студии и не рассматривал. А в 2008 С++98 ака Си с классами, по сути.
178 1366094
>>66086
Так vi/emacs из той же оперы, только без гуя и с режимами.
179 1366131
Если в функции, которая возвращает double, что-то пошло не так, как это событие передать наружу?
180 1366139
>>66131
Ручками установить errno, и если он выставлен - обрабатывать возвращаемое как целочисленные коды ошибок. Ну или завести свою глобальную переменную под это дело.
181 1366215
>>66131

>header


define PROIZOSHLA_ZALUPA 1488

>func.c


if (zalupa cond)
ErrorHandler(PROIZOSHLA_ZALUPA);

>Error_handler.c


if (func(x) = 1488)
puts("произошла залупа пиздец короче чтото не так");
182 1366220
>>66215
void errorhandler(int error) {switch (error)
case 1488:
puts("zalupa occured error code 1488");
break
;}
1509722339374.png9 Кб, 735x249
183 1366221
>>66093
Выбор языка в настройках проекта.
184 1366222
>>66215
double f(double x)
{ return x + 8.;}

int main()
{ f(1440.); }

Охуенное решение.
185 1366235
>>66221
Он имеет в виду что там компилятор старый, но ему ничто не мешает прикрутить туда компилятор от новой студии.
186 1366250
>>66235
А как?
sage 187 1366254
>>65975
Тебе же написали - неверный указатель. Сделай в load_file аргумент или указателем на массив фиксированного размера, или выкинь фиксированный размер из LIST нахуй и принимай указатель на указатель. И unsigned тоже выкинь. https://ideone.com/3aWjFh

>>66010

> обработка вложенных скобок практически всегда через рекурсию выполняется


Нет, нормальные люди пилят явный стек, это позволяет нормально обрабатывать ошибки, а не вываливаться через сто уровней рекурсии вручную или через longjmp.

>>66080

> Сейчас ведь IDE не модно


> модно


Ты, наверное, из мейнтейнеров leftpad.js? Или тебе просто нравится дрочить на инструменты вместо решения задач?

>>66131

> Если в функции, которая возвращает double, что-то пошло не так, как это событие передать наружу?


Или выделить из всего диапазона double что-то ненужное для индикации ошибки (например, банально вернуть NaN), или bool func(double ∗result).

>>66221
Зачем /TC, если можно просто добавить в проект файлы с расширением .c, а не .cpp?

>>66235
И енжой проблемы с отладкой и инкрементальной компиляцией. Но в основном с отладкой.
188 1366262
>>66250
Через настройки, лол.
189 1366263
>>66254
С отладкой дело решается так же как и с компилятором, а проблема с инкрементальной компиляцией вообще откуда должна взяться?

Алсо для этого уже придумали мейкфайлы чтобы ничего в настройках ide не менять и удобно компилить из под терминала.
sage 190 1366265
>>66263

> а проблема с инкрементальной компиляцией вообще откуда должна взяться?


Прошу прощения. Я имел в виду Edit&Continue.
191 1366269
>>66254

> Сделай в load_file аргумент или указателем на массив фиксированного размера, или выкинь фиксированный размер из LIST нахуй и принимай указатель на указатель.


Это какой то пиздец пиздеца. Я вначале отправлял значение (char *)LIST[num] а потом и вообще нахуй перенес массив по месту использования а в теле порограммы оставил только чиселки, с ними меньше проблем.

> Ты, наверное, из мейнтейнеров leftpad.js? Или тебе просто нравится дрочить на инструменты вместо решения задач?


Нет, я как раз давненько в веб фронтенд не лазил хотя левоотступ это вроде из ноды ну да хуй с ним уже и забыл что IDE и любимый редактор друг друга не исключают. Звиняюсь.
192 1366270
>>66080
Это что за редактор такой?
193 1366271
>>66263

>удобно компилить из под терминала


Ну не знаю, что удобнее. Альт-табаться до окна терминала, жать вверх и энтер. Или же просто ctrl+f5.
Мимо
194 1366278
>>66270
Явно какое-то браузерное говно. Атом?

>>66271
Зависит от подхода к программированию. Если ты компилируешь при каждом изменении (F5-driven development), тогда конечно в консольку ходить не очень удобно. Если ты пишешь относительно большие куски, то консоль норм, и даже удобнее. А так, сейчас любой редактор можно научить компилятор запускать по хоткею.
195 1366279
>>66271
В иде/редакторах обычно есть интеграция терминала.
Тем более это дело привычки, я много чего делаю в терминале, но меня наверное можно назвать красноглазиком, т.к. я на работе пишу драйвер под линукс.
196 1366280
>>66278
Не знаю, не пользовался им, выглядит красиво, работает скорее всего так себе.
Думаю вот с вскода попробовать перекатиться на саблайм.
197 1366281
>>66271

>не знаю, что удобнее


while :; do gcc "FILE" 2&>logfile; sleep 2; done
watch cat logfile
И отвешиваешь терминал на второй монитор, чтобы смотреть, какие ошибки выплёвывает компилятор.
Какже ИДЕдети сосут. Я просто тащусь.
198 1366283
>>66278

>F5-driven development


Да, оно, идеальное название. Написал строк десять, собрал, повторяю, когда решил проверить - запускаю и молюсь на распиханные в первой версии кода принты.
199 1366285
>>66281

>while :; do gcc "FILE" 2&>logfile; sleep 2; done


while :; do gcc "FILE" 2&>logfile; sleep 2; done &
да, в конце ещё пизже будет поставить амперсанд, чтобы отправить цикл в фон.
200 1366286
>>66281
Ну от подхода зависит. Я не постоянно пишу, а набегами. Между ними подсознание придумывает, как решить конкретную проблему. Ну и у меня не никсы.
201 1366355
Как это работает?
char *lineptr[MAXLINES];
Я правильно понимаю, что это объявляет массив из maxlines элементов, каждый из которых является указателем на строку?
strcpy(p, line);
lineptr[nlines++] = p;

Каким образом работает это? Ведь длина строки не указана, вдруг там не хватит места для копирования p?
202 1366417
>>66355
p не имеет никакого отношения к твоему массиву с УКАЗАТЕЛЯМИ на строки. Где-то в памяти создаешь строку p, копируешь в нее line. А за тем просто в свой массив копируешь указатель (адрес начала строки p) p.
Т.е. строки хранятся отдельно, а массив просто коллекционирует их адреса/указатели.
203 1366421
>>66417
Спасибо, теперь все понятно
204 1366432
А есть что-нибудь из переведенной литературы с учетом новейших изменений?
205 1366435
>>1362220
>>1362244
Господи, почему же Бабаян с Пентковским отдались Интелу. Если бы они не ушли к ним на западе все еще не было бы микропроцессоров, способных хотя бы в 1 MOPS. А мы были бы монополистами в мире микропроцессоров, создавали бы самые технологичные и быстрые решения, доход от продажи которых составлял бы триллионы долларов в год, ведь выхода у других стран не было бы - Интел сам не может, а остальные вообще полные бомжары. И только наш Эльбрус пробивает сверхзвуковой барьер в микропроцессорных вычислениях. Мы стали бы властелинами мира, держали в руках всю компьютерную индустрию, не продай они наши технологии врагу. Как так можно было поступить. Ублюдки.
206 1366436
>>66435
Прохладная история.
207 1366440
>>66435

>не продай они наши технологии врагу. Как так можно было поступить. Ублюдки.


Все правильно сделали, малаца, люблю их.
208 1366444
>>66435
Опять психи из дур.дома сбежали. Как же вы сюда попадаете-то?
.png22 Кб, 683x350
209 1366448
>>65987
Добавил скобочки на рекурсии.
https://ideone.com/rDppF4
Теперь нужно думать как парсить многосимвольные операторы, типа синусов и тангенсов.
210 1366450
>>66444

>эта весна и обострившиеся шизики повсюду


>Как же вы сюда попадаете-то?


Такая ты наивная няша :3
211 1366452
>>66436
Ничего прохладного. Пентковский создал набор инструкций SSE (на основе разработок микропроцессора Эль-90, который в 1990м году стал бы быстрейшим в мире, если бы пошел в серийное производство (развал СССР сделал эти планы неосуществимыми). Интел догнал бы его по производительности только через 10 лет (на самом деле не догнал бы - Пентковского-то у них не было бы, выпускайся на родине Эль-90). SSE до сих пор используется в новейших процессорах Интел) для Pentium 3, который увеличил производительность 3ки в 4 раза.
А Бабаян пришел в Интел в 2004 году. Угадай, что Интел выпустит спустя 2 года с его прихода? Core 2, который станет отцом для твоего любимого Core i7, на который ты дрочишь. И эти микропроцессоры просто рвут все остальные в производительности. Очевидно, что в них использовались наработки Бабаяна для процессора Эль-2000.
Так что когда ты теперь восхищаешься великолепными сверхбыстрыми процессорами Интел, тебе стоит вспомнить, кто стоял у их истоков. Советские ученые. Без их работ мир бы сейчас все еще радовался бы 0.5 MIPS'ам и 256 Кб оперативной памяти.
212 1366454
>>66452
Хуль теперь плакаться, радуйся, что из-за совместной разработки выиграл лично ты. Аля наивная фантастика 60-х, про совместное покорение космоса.
213 1366455
>>66452
То есть все правильно сделали - кинули пидорашек вроде тебя, гнида через хуй и уехали к белым людям.
Ну хоть кто-то не дебил.
214 1366456
>>66435
Не могу понять толсто это или тонко.

Алсо: вот допустим у меня объявлено Mix_Music mymusic;
в исходниках SDL_mixer объявлено вот так

struct _Mix_Music {
Mix_MusicInterface
interface;
void context;

SDL_bool playing;
Mix_Fading fading;
int fade_step;
int fade_steps;
};

typedef struct _Mix_Music Mix_Music;

Я правильно понимаю что не могу вот так4 в тупую в своем коде mymusic->context вызывать а только через какой нибудь

char
buffer = Mix_GetContext(mymusic);

объявленный публичным, верно?
215 1366465
>>66452
А тотального отставания в электронике у СССР как бы и не было, ага. Во всем виновато копирование System/360, чоуж. И хуевое руководство.
216 1366475
>>66452

>если бы пошел в серийное производство


Но ты же понимаешь, что он никогда бы не пошел в серийное производство?
Я много читал про все это не далече, чем полгода назад. Про компьютеры из СССР. Из прочитанного я понял, что все компьютерные технологии Совка - это копипиздинг западной техники, микросхем, микропроцессоров, технологий производства жестких дисков, мониторов и прочего прочего. И единственной реально революционной (все остальное - тупое говно тупого говна, которое появлялось в совке, когда на западе такие решения уже лет 10 как устарели) разработкой был этот пресловутый Эльбрус. Кстати, его концепт тоже спизжен - с машин компании Берроуз, которые не использовали ассемблера в процессорных командах, вместо него был высокий АЛГОЛ (его наши тоже спиздили, назвав "язык высокого уровня Эль-76"). Но концепт концептом, язык языком, спиздили и спиздили, а итог должен был превосходить суперкомпьютеры Берроуз да и вообще компьютеры всего мира.
Но. Эльбрус 1 был сдан в 1980 году и никогда не пошел в серию. При этом он был слабее батьки-Берроуза, с которого вдохновлялся. Фэйл.
Срочно начали пилить Эльбрус 2. Вот он как бы уже должен был быть гораздо сильнее и лучше предыдущего (хотя все равно безнадежно сосал у какого-нибудь Крэя). Но и он не пошел в серию. А почему? Машина-то получилось, как принято общественностью, неплохая. А потому что НЕТ БЛЯДЬ У СОВКА ЭЛЕМЕНТАРНОЙ БАЗЫ. Не мог он, как и сейчас не может, массово производить суперкомпьютеры и/или микропроцессоры. Потому что нет такой школы и промышленной технологии полупроводников, как у США (сейчас кто-нибудь кукарекнет, что многое из разработки теории и промышленности полупроводников разработали как раз-таки в СССР "Ряяя, ты что, не слышал про Алфероваааа, ряя", но я не знаю конкретно за Алферова, знаю только, что с проводниками в СССР и России полный пиздец - т.е., даже если наши какие-то технологии первыми разработали, воспользоваться ими они не смогли). Не умели и не умеют в транзисторы, интегральные схемы, микропроцессоры. Поэтому и выпустили Эльбрус 2 мелким тиражом. В количестве БЛЯТЬ 3 ШТУК. Все остальные Эльбрусы 2 - это так называемые "Эльбрус-1к2", т.е. перенос БЭСМ-6 на элементную базу Эльбруса 2. Рассказывать, что это за говно, думаю, не нужно. Берут устаревшую на 20 с лишним лет машину и натягивают на нее (или ее на) концепт Эльбрусовской системы с языком высокого уровня в процессорных командах. На выходе получается дикое, монструозное, страшное, нестабильное тупое говно, отстающее от западных машин как минимум на поколение. А ведь это "революционная разработка".
Нету блять элементарной базы. Поэтому не смогли бы они выпускать эти "Эль-90". Были они на бумаге, вполне возможно, что помогло людям, участвовавшим в их разработке, вкатиться в Интел, Sun, Моторолу и AMD. Но производить такое промышленность СССР никогда бы не смогла. Нет технической обеспеченности.
Так что да - лучшее, что могло случиться с Эльбрусом - это переход его команды в Интел. С отечественной элементарной и технической базой о мировом господстве в микропроцессорах можно забыть и даже на заикаться, а Интел успешно все вывел и выдал в массы.
216 1366475
>>66452

>если бы пошел в серийное производство


Но ты же понимаешь, что он никогда бы не пошел в серийное производство?
Я много читал про все это не далече, чем полгода назад. Про компьютеры из СССР. Из прочитанного я понял, что все компьютерные технологии Совка - это копипиздинг западной техники, микросхем, микропроцессоров, технологий производства жестких дисков, мониторов и прочего прочего. И единственной реально революционной (все остальное - тупое говно тупого говна, которое появлялось в совке, когда на западе такие решения уже лет 10 как устарели) разработкой был этот пресловутый Эльбрус. Кстати, его концепт тоже спизжен - с машин компании Берроуз, которые не использовали ассемблера в процессорных командах, вместо него был высокий АЛГОЛ (его наши тоже спиздили, назвав "язык высокого уровня Эль-76"). Но концепт концептом, язык языком, спиздили и спиздили, а итог должен был превосходить суперкомпьютеры Берроуз да и вообще компьютеры всего мира.
Но. Эльбрус 1 был сдан в 1980 году и никогда не пошел в серию. При этом он был слабее батьки-Берроуза, с которого вдохновлялся. Фэйл.
Срочно начали пилить Эльбрус 2. Вот он как бы уже должен был быть гораздо сильнее и лучше предыдущего (хотя все равно безнадежно сосал у какого-нибудь Крэя). Но и он не пошел в серию. А почему? Машина-то получилось, как принято общественностью, неплохая. А потому что НЕТ БЛЯДЬ У СОВКА ЭЛЕМЕНТАРНОЙ БАЗЫ. Не мог он, как и сейчас не может, массово производить суперкомпьютеры и/или микропроцессоры. Потому что нет такой школы и промышленной технологии полупроводников, как у США (сейчас кто-нибудь кукарекнет, что многое из разработки теории и промышленности полупроводников разработали как раз-таки в СССР "Ряяя, ты что, не слышал про Алфероваааа, ряя", но я не знаю конкретно за Алферова, знаю только, что с проводниками в СССР и России полный пиздец - т.е., даже если наши какие-то технологии первыми разработали, воспользоваться ими они не смогли). Не умели и не умеют в транзисторы, интегральные схемы, микропроцессоры. Поэтому и выпустили Эльбрус 2 мелким тиражом. В количестве БЛЯТЬ 3 ШТУК. Все остальные Эльбрусы 2 - это так называемые "Эльбрус-1к2", т.е. перенос БЭСМ-6 на элементную базу Эльбруса 2. Рассказывать, что это за говно, думаю, не нужно. Берут устаревшую на 20 с лишним лет машину и натягивают на нее (или ее на) концепт Эльбрусовской системы с языком высокого уровня в процессорных командах. На выходе получается дикое, монструозное, страшное, нестабильное тупое говно, отстающее от западных машин как минимум на поколение. А ведь это "революционная разработка".
Нету блять элементарной базы. Поэтому не смогли бы они выпускать эти "Эль-90". Были они на бумаге, вполне возможно, что помогло людям, участвовавшим в их разработке, вкатиться в Интел, Sun, Моторолу и AMD. Но производить такое промышленность СССР никогда бы не смогла. Нет технической обеспеченности.
Так что да - лучшее, что могло случиться с Эльбрусом - это переход его команды в Интел. С отечественной элементарной и технической базой о мировом господстве в микропроцессорах можно забыть и даже на заикаться, а Интел успешно все вывел и выдал в массы.
217 1366477
>>66475

>Не умели и не умеют в транзисторы, интегральные схемы, микропроцессоры.


а на чем тогда военная электроника работает? она все-таки у совка была пусть и не особо крутая да и сейчас что-то делают
218 1366478
>>66477
Ты охуеешь, но военные до сих пор от ламп не отказались.
219 1366479
>>66478
скажем так я не поверю
самонаводящаяся ракета на лампах это дизельпанк какой-то
220 1366480
>>66452
>>66475

>этот разговаривающий сам с собой обострившийся шизик


Весна пришла.
221 1366481
>>66477
>>66478
>>66479
Нахуй иди.
222 1366482
>>66477
Ну, да. По мелочевки пилят какую-то хуету мелкими партиями. Но это предел.
223 1366485
>>66432
Bump. нафлудили то
224 1366537
>>66477
Да пиздежь это всё. Я будучи школьником годами занимался радиотехникой, паял всё, начиная с ламповых усилков со здоровенными трансформаторами и заканчивая схемами на логических элементах (микрухи с ноготь) и ни разу не видел ни одной иностранной детали. Вся элементная база была русская. Отставание пошло только с компьютеров (микропроцессоров).
225 1366563
>>66537
Зачем ты что-то объясняешь залетным детям из hw, которые с трудом себе-то объяснят что такое ток?
226 1366586
>>66537
Там не деталь, а сами элементы были иностранными. Можно погуглить, у всех отечественных диодов, микросхем и прочего были зарубежные прототипы. Где-то был сайт, где перечислялись с фотками советские копии и иностранные оригиналы.
227 1366603
>>66537
Мда, то-то было так много брака среди телевизоров и радиомагнитофонов, а электронных устройств сложнее "Электроники ИМ-02" в гражданском потребление просто не существовало.
Видимо, только твои говноподелки пилить эти микроэлементы и подходили.
228 1366606
>>66586

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


Ну все охуеть теперь в Америке колёса круглые, давай нахуй на квадратных езди
229 1366621
>>66606
Пошли сверх-маневры.
Продолжаем зоонаблюдение.
230 1366636
Нахуй вы в треде про Сишечку сретесь? Сходите скриптомакак повеселите.
231 1366655
>>66586
Это называется "аналог". Аналоги есть не только между отечественными и зарубежными деталями, но и внутри отечественных например. Дело в том, что схемотехника примерно унифицирована. Изобретать детали с нестандартными параметрами не круто.
232 1366658
>>66655
Есть разные архитектуры. Тот же интел и арм.
233 1366660
>>66456
В си нет публичных/приватных полей, можешь обращаться так, как хочешь, если есть специальная функция геттер лучше обращайся через неёопять же не обязательно, для поддержания эстетики между либой и твоим кодом.
234 1366679
>>66432
Ну прата же. В C17 ничего особо интересного нет.

>>66660
Полей нет, но если вот так struct _Mix_Music лежит в .c файле внутри SDL или в приватном (не распространяемом) .h, а typedef к ней в публичном .h, то единственный легальный способ достучаться до полей - через геттеры. Это классический способ инкапсуляции в Си (который, кстати, не осилили в крестах, где методы должны торчать в определении класса в .h вместе со всеми остальными кишками).
235 1366688
>>66636
Дело говоришь. При чем тут Сишка? Как сейчас помню, поднимаю в 88-м на советском компьютере javascript...
236 1366695
>>62799 (OP)
Всем привет, я новичок.
Кто-нибудь может сделать так, как гифке, написав код на С?
И так же в среде разработки покадрово сохранить и сделать один файл .gif на выходе, а потом показать код?
Хочу выбрать язык, на котором буду делать такие вещи, а возможности языков не знаю.
Помогите, пожалуйста.
http://www.cyberforum.ru/3d-modeling/thread2421226.html
237 1366702
>>66688
Не сомнено, про Сишку ни слова. Но писькомерство и а вот если бы
238 1366703
>>66695
тащи гифку сюда, cyberforum сломался. Я не помощник, за других говорю
1212.gif124 Кб, 300x300
239 1366712
240 1366720
>>66695
Ну берешь либу для работы с гифками, рендеришь изображение во фреймбуфер, пишешь кадр в гифджиф, рендеришь следующий кадр, пишешь. От языка тут абсолютно ничего не зависит.
241 1366752
>>66452
Как мне кажется, всё-таки большая часть производительности из-за out-of-order execution, а не SSE. Да, оно безусловно важно, но без OOO ты бы до сих в асме сидел и руками вычислял трупуты и латенси. Особенно в 90-х, когда компиляторы разве что константы сфолдить могли.

RIP Itanium
242 1366763
А какого хуя у меня программа сегфолтится?

typedef struct _TAG_ {
int x,y,w,h;
img_t img;
} g_t;

g_t Button1;

...

_draw_img(Button1.img, Button1.x, Button1.y, Button1.w, Button1.h)

Когда тоже самое было через обычные переменные все ОК
243 1366773
>>66752
Любопытное про кодинг под PowerPC на пастген-консолях. Чтобы далеко не ходить, вывод такой что эти чипы примерно равны 1/3 от K8(Athlon64) равной частоты на сложном (branch and microcode-heavy) коде.

http://cbloomrants.blogspot.com/2010/07/07-10-10-powerpc-suxors.html
http://cbloomrants.blogspot.com/2010/07/07-21-10-x86.html
244 1366776
>>66763
Ну нам-то откуда знать? Проблема где-то еще. Видимо, у тебя img инвалидный, ты структуру вообще инициализируешь?
245 1366777
>>66752
>>66475
>>66452
Что-то мне кажется вы этого долбаеба Бабаяна ну хотя бы слегкааааа так переоцениваете. Ну хотя бы самую малость. За Пентковского не скажу, так как нихуя о нем не знаю, не знаю на кой ляд ему этот SSE сдался, но раз хотел разработать, значит есть за что.
Но Бабаян - огромнейший хайпожор, который "изобрел" читай спиздил все подряд прорывные технологии. Его Sun нахуй послали, прокрутив на залупе с его "невероятными процессорами", а свой охуенный Эльбрус ДВЕТЫЩИ он так никогда и не выкатил. Лол, обещал захуярить и похоронить Интел с начала 90х, а в итоге выкатили какое-то говнище только в 2008, которое с глубоким проглотом сосет у самых бюджетных Интелов. ГДЕ БЛЯТЬ ПРОТОТИП СУКА? В смысле, раз такой охуенный процессор был, где хоть один? Почему Sun нахуй послали? Потому что он им говна лил за шиворот, как вам льет. Увидел кучу модных, появившихся на заре 90х терминов (по крайней мере в отношение процессоров) - суперскалярность, VLIW, параллелизм, предвыборка кода. И как начал спамить этой терминологией всех подряд, не забывая еще спиздануть, что все это придумал он.
Пиздабол он какой-то, миллион раз уже попадался, поэтому я ему не очень-то верю.
246 1366780
>>66776

> ты структуру вообще инициализируешь?


Инициализирую бля! Как понять "иницмализирую"?
Картинки не битые если что
247 1366793
>>66777

> как вам льет. Увидел кучу модных, появившихся на заре 90х терминов


Кому вам, мудила? Он в каждой лекции трындит про Эльбрус 1-2 повторяя по кругу что - OoO суперскаляр, первый (сирийный) в мире, интел только в 93ем осилил, всем давали пасасать.

Итаниум никакого отношения ни к эльбрусу ни к бабаяну не имеет.
248 1366805
>>66793
Бабаяноёб порвался.
Кого блять Интел только в 93 осилил, долбаеб? Суперскалярный мейнфрейм? Ну охуеть теперь, вот только Интел по микропроцессорам, а не по мейнфреймам специализируется. Первый же суперскалярный рабочий микропроцессор создала Моторола в 88 году, но никак не уебан Бабаян.
Но и с желанием быть первым суперскалярщиком Бабаян сосёт бибу, так как Крэй создавал АБСОЛЮТНО СЕРИЙНЫЕ (а не 1-2 штуки, как его невъебенные "серийные" Эльбрусы) суперскалярные машины на 16 лет раньше этого пиздабола.
Так что непонятно на что он тут претендует, на какое первенство. На суперскалярность? Сорян, вы опоздали на 16 лет, надо было раньше приходить. На суперскалярный микропроцессор? Извините, но что-то никто никогда не видел ваших рабочих суперскалярных микропроцессоров. Короче, он знатный пиздабол.
249 1366809
>>66805

> Бабаяноёб порвался


kek написал порвавшийся долбоеб с горелой дупой. Иди с бабаяном на хабре спорь кто там первый и кто круче, тут тема про язык Си.
jazz is my life.jpg50 Кб, 500x672
250 1366860
>>66773

> The result is that you can get wins by randomly offsetting your arrays when you know they will be used together. Some amount of this is just unavoidable.


Ох лол. Как же рад, что под x86 всё делаю. Особенно когда читаю про модели памяти различных архитектур (например DEC Alpha - ебануться).
251 1366862
>>66860
Алсо, это чувак из RAD Game Tools? Как они туда столько классных людей набирают? Одни Фабиан и Кейси стоят сотни программистов.
252 1366865
>>66679
Что нового в С17?
253 1366911
>>66688
Память выделил? Или в указатель что-то записал перед вызовом?
254 1366912
>>66679

>Ну прата же.


Спасибо.
255 1366919
>>64727
GCC и современные стандарты поддерживает.
5342553224.png62 Кб, 773x585
256 1366936
>>66776
Короче у меня похоже проблема с пониманием как правильно работать со структурами

пикрелейтед - когда я передаю картинку в модуль программа сегфолтится

функция из модуля делает вот это

void module_draw_img(img_t p, int x, int y)
{
SDL_Surface pixbuf = (SDL_Surface )p;
SDL_Rect dest;
dest.x = x;
dest.y = y;
dest.w = pixbuf->w;
dest.h = pixbuf->h;
SDL_BlitSurface(pixbuf, NULL, screen, &dest);
}

когда тоже самое на пикрелейтед через обычные глобальные переменные все работает, видимо потому что еще функции (которые для каждого элемента приходится отдельную держать) инлайнятся.
423654325532.png22 Кб, 370x164
257 1366938
>>66936

> делает вот это


да ебаное говно
258 1366945
>>66938
Включи пошаговую отладку, посмотри на каком вызове падет. Ну или тошни в лог, перед каждым вызовом. Смотри где падает.
259 1366946
>>66938
Потому что у тебя все переменные в структуре в стеке, ВОЗМОЖНО кроме img_t. Надо смотреть и ее описание, возможно там есть член требующий явной инициализации.
260 1366949
>>66945

> Ну или тошни в лог, перед каждым вызовом.


жабаскрипты жабаскриптики так и делаю

Алсо:

loadIMG: music 28x33
loadIMG: info 32x32
loadIMG: vol 65x32

drawIMG: vol 0x0 x:0 y:480
drawIMG: info 0x0 x:0 y:480

То есть то что я и подозревал - когда я вызываю btn_init(Button1) оно внутри с копией структуры работает внутри а на глобальной структуре это никак не отражается.

Надо как то правильно через поинтер в функцию ссылку на структуру передавать

>>66946

> ВОЗМОЖНО кроме img_t. Надо смотреть и ее описание, возможно там есть член требующий явной инициализации.


typedef void* img_t;

Вот так вот оно в заголовке определено
261 1366950
>>66763
Сделай так
_TAG_ Button1;
Я честно говоря вообще не понимаю, как это у тебя компилируется.
262 1366952
>>66949
В btn_init и btn_draw по ссылке передавай
263 1366953
>>66952
*через указатель.
264 1366956
>>66950

> Я честно говоря вообще не понимаю, как это у тебя компилируется.


прикидываюсь clang -ом

попробовал по твоему через struct _TAG_ Button1;
тоже компилируется и тоже валится на том же месте, то есть и то и то примерно одно и тоже

>>66952
А как правильно то? https://paste.ofcode.org/vi5TZjpwaZhLrLfGAv68Bt
Когдя я их использую он (компилятор) вечно пиздит
265 1366958
>>66956
static void btn_init(g_t btn) {
btn->img = module_load_img( btn->path ); // модуль знает путь к папке с картинками
btn->w = module_get_img_width( btn->img );
btn->h = module_get_img_height( btn->img );
}

static void btn_draw(g_t
btn) {
module_draw_img(btn->img, btn->x, btn->y, btn->w, btn->h);
}
266 1366959
>>66958
Примерно понял, можешь пасту не делать, сейчас попробую
267 1366960
64766343654.png113 Кб, 734x563
268 1366965
>>66960
Спасибо заработало.

то есть корректный код для моего примера выглядит вот так https://paste.ofcode.org/GHjwTb99cprrU44Ru9j6WX
269 1366967
>>66965
Хорошим тоном будет еще избавиться от глобальных переменных.
270 1366979
>>66949
Либо передавай в свой инит указатель, либо вообще нахуй убери и обращайся в интернете напрямую к баттон1,2,3, они у тебя все равно глобальные на какой-то хуй.
271 1366980
>>66967
Двачую, засунь переменные в начало мейна, ты все равно их в функцию передаешь, тогда в чем смысл глобальноститем более она тут вообще не к месту
272 1366984
>>66979

> обращайся в интернете напрямую к баттон1,2,3, они у тебя все равно глобальные на какой-то хуй.


так и было изначально, но с этим неудобно работать, мне вот надо еще 2 элемента идентичных добавить и обрабатывать, надо опять каждой по хуевой горе переменных объявить и функций написать.
Сабжевый код это упращенная версия
>>66980
Пока (к сожалению) не могу, много где еще напрямую обращение идет, но когда код чище в нем уже лучше видно как можно так все организовать что бы они в глобальной области видимости не весели.
5465465646.jpg919 Кб, 1080x1080
273 1367030
Тэк. Поясните мне один момент.

Откуда берётся "С89 - тру, остальное от дьявола". Я сначала думал это такая толстота, но на лоре и в конфах частенько встречаю С89 бояр поливающих говном остальные стандарты и заявляя, что дескать после С89 остальное - это заливание анальное огораживание разработчиков.

Чем С89 лучше С11?
274 1367032
>>67030

>лоре


Говноед, уходи
275 1367033
>>67030
Единственное объяснение - это старым восьмибитным компилятором под спектрум не соберется.
276 1367034
>>67032

>Говноед, уходи



>Выискивает куски в посте не относящиеся к теме


>офтопит


>подрывается


>называет другого говноедом



пиздуй обратно в /b, бiдло

на лоре хотя бы тебя не пидорнут с форума за отказ лизать жопу макаке и на любую нетривиальную проблему распишут разжеванные тома
277 1367036
Подскажите тупому дебилу, как слинковать правильно:
В main.c:
#include <hiredis.h>

В /usr/local/lib:
libhiredis.a libhiredis.so libhiredis.so.0.14
В /usr/local/include:
hiredis

gcc -L libhiredis -o main main.c
main.c:2:10: fatal error: hiredis.h: No such file or directory
#include <hiredis.h>
^~~~~~~~~~~
compilation terminated.
278 1367038
>>67036
если запустить
sdl2-config --libs

то он выдаст вот такую хуйню
-L/usr/local/lib -lSDL2

sdl2-config --cflags
-I/usr/local/include/SDL2

Надеюсь тебе это поможет
279 1367043
>>67034

>лоре


Говноед, уходи
280 1367047
>>67036

>Подскажите


Но зачем? Ведь если тебе подскажут, оно заработает, а значит пердолингу конец. Пердоля против пердолинга, ты сам себя отрицаешь.
281 1367051
>>67038
Ничем не помогло. Вот ldconfig:

>ldconfig -p | grep hiredis


>libhiredis.so.0.14 (libc6,x86-64) => /usr/local/lib/libhiredis.so.0.14


>libhiredis.so (libc6,x86-64) => /usr/local/lib/libhiredis.so



Пока компилю через жопу:
gcc -o main -I./hiredis main.c hiredis/libhiredis.a с самой либой в директории
image.png100 Кб, 1024x1024
282 1367067
>>65586

>Людьми


Зачем мне опускаться ниже моего уровня?
283 1367069
>>64241
Напиши сначала как в книжке Господа нашего http://www.cypress.com/file/56651/download, калькулятор с польской нотацией юзающий стэк тянешь знач. из стека пока не будет операция - выполняешь операцию над числами и суешь обратно в стэк, парсер легчайше сделать для такой хуйни.
284 1367071
>>64967
Vim и Emacs лучше емакс имхо
285 1367086
>>67030

> на лоре


Говноед уходи
286 1367099
Как канонично получить строку из функции? Грубо говоря аллоцировать в main и передавать указатель в ф-ию, потом в main делать free()? https://ideone.com/igkm1b
Может, вообще в какой-то книге можно почитать про такие базовые best-practice по Сишке?

третий день пишу на си
287 1367104
>>67099
По хорошему удаляй в том же скоупе, что и выделяешь, чтобы все было более менее наглядно или делай подобие ООП с конструктором и деструктором, только все равно деструктор придётся ручками дёргать.
288 1367108
>>67099
Точно не уверен но поди вот так вот можно https://ideone.com/T7sGeU
289 1367109
>>67108
str_t func() {
static char buff[] = "fuck";
return buff;
}
290 1367115
>>67104
>>67108
Спасибо.
291 1367131
>>67108
>>67109
Все бы хорошо, да только годится исключительно для ненужных функций (функция, которая возвращает константу, является ненужной по определению). А менять состояние функции через static без поломок можно только до первой многопоточности.
292 1367135
>>67131
Оно как бы вообще идея плохая. Я так понял, просто для примера возможности.
293 1367194
this или this ?

Перекатываюсь с питона-джанго
294 1367196
>>67194
Читал первую, лайтовая приятная книжка. Легко читается, легко понимается. Моя первая книга по си, могу сказать что ок.
295 1367224
>>66860

Там же (?) пишут, что под PS2 (не говоря о более ранних консолях) было намного жестче (типа постоянный стриминг с DVD, постоянная загрузка/выгрузка текстур в мизерную видеопамять с основной несколько раз за кадр), хуже тулинг, вот это все. Железка крайне любопытная кстати https://hwdocs.webs.com/ps2

https://www.youtube.com/watch?v=PvK2nVMKEQ4
pchel.png516 Кб, 586x566
296 1367392
Почему rand() выдает одинаковые числа?
297 1367406
>>67392
только вчера сам об этом гуглил

надо вот так вот делать

srand( time(NULL) );

зкштеа("random: %d ", rand() % 10); // => 0...10
298 1367407
>>67406

> printf


нутыпонил
299 1367408
>>67406
Это в учебнике который я читал написано про это что надо через переменную
time_t t;
srand(time(&t);
И дальше уже используешь rand().
300 1367411
>>67392
Если интересует почему так, то потому что статические (т.е. компилируемые без рантайма) языки так устроены что никакого рандома быть не может.
напиши ка цикл или алгоритм который рандомно числа подбирает - не сможешь. Тебе так и так надо какое то стартовое значение которое должно меняться, но в бинарнике же ты не можешь значение менять (в зависимости от запуска итд).

>>67408
Да блять выкинь ты нахуй этот учебник, открой документацию нормальную и смотри http://www.tutorialspoint.com/c_standard_library/c_function_time.htm

Функция time из стандартной библиотеки, принимает в качестве аргумента поинтер то есть туда нахуй что угодно можно сунуть, если указатель указывает на ноль то он возвращает 1 января 1970 в милисекундах

#include <time.h>
int main() {
char \*t = {0,0,0};

long int a = time(&t);
printf("time: %li %li\n", t, a);
}
301 1367526
Как делать массив указателей на функции?
Все функции void, аргументов нет.
Пробовал void (mas[8])() = { &f1, ... } - на каждую данную функцию ругается "ссылка на неразрешённый внешний символ _f1 в функции _foo" в файле file.obj
Без амперсанта то же.
Если сделать так:
void (
mas[8])();
mas[0] = &f1;
mas[1] = &f2;
...
то та же ошибка, но не ругается на нулевую функцию.

typedef void (funcs)();
funcs* mass[8];
не помогает
302 1367533
>>67526
typedef юзай, проще будет
303 1367535
>>67526
Емнип там нужен тип данных. Либо выделять память через малок.
Типа:
int звездочка array[];
304 1367538
>>67526
>>67535

>void (mas[8])() = { &f1, ... }


void (*mas[8])() = { &f1, ... }
Извиняюсь
305 1367539
>>67538
Да, это не решение проблемы, я неправильно написал свой код.
306 1367543
>>67526
Решил, массив создавал правильно, ошибка в другом
307 1367555
>>67543
так в чем же? принеси давай весь код
308 1367562
>>67555
У функций, которые клал в массив, было по два прототипа - в хэдере и в другом файле
309 1367575
Бля как вы под шиндошс конпеляете? Этож пиздец какой то, нашел вроде аналог macbrew/linuxbrew (chocolatey) а там надо блять некрософт повершел 2.0, а ему надо нетхренворк 4+, а чтобы блять поставить нетхренворк 4+ надо блять через обновления эти ебучии установить 4.0, потом оно перезагрузится, потом 4.5, опять перезагрузится потом 4.6.1 потом 4.6.2 и так до последней версии и каждый раз чето блять качает и ставит по пол часа.
Как с этим блять работать то вообще?
310 1367580
>>67575
Mingw64
311 1367600
>>67580

> Mingw64


Надо им было переименовать проект когда форкали, а то все ссылки видут на обычный mingw
А пакетный менеджер там есть хоть какой то? А то блять какой не возьми они все на повершеле поголовно, ну в чем проблема взять руби или пистон тот же ну нахуя опять завязывать свои приложения на МС поделия, ну ничему вообще люди не учатся.
312 1367601
>>67600

>А пакетный менеджер там есть хоть какой то


Нет, пакетная среда в Cygwin
313 1367605
>>67601

> Cygwin


О, лучь света, спасибо.
314 1367614
>>67605

> Cygwin


> лучь света


Поспешил с выводами, такое чувство что мне проинсталировали дебиан скомпилированый для винды.
Говно короче.
315 1367621
>>67600
Msys2 есть еще.
316 1367623
>>67575
У меня линупс на виртуалке.
317 1367625
>>67623

> У меня линупс на виртуалке.


Так а под винду то в нем не накомпиляешь.
318 1367627
>>67625
Блять, а может свой под винду компилятор написать? Чтобы нормально работал.
319 1367630
>>67627
Пердоли как всегда, писать программы на Си -не пишем, лучще попиздим про кривые костыли, изображая ложную активность.
65347364.png66 Кб, 668x664
320 1367632
Это какой то идиотический пиздец, в этом повершеле нельзя скопировать текст он просит перезапускаться для продолжения работы с установленной программой, и ни один пакетный менеджер не устанавливает пакеты (chocolatey, Scoop)

>>67630

> писать программы на Си -не пишем, лучще попиздим про кривые костыли


А толку их писать если их проверить нельзя
321 1367638
>>67625>>67575
Ну да, чет тупанул. Под шиндос есть codebloks.
322 1367663
>>67614

>дебиан


>Говно


В тот ли ты трхед забрел, петушок?
323 1367664
>>67411

> потому что статические (т.е. компилируемые без рантайма) языки так устроены что никакого рандома быть не может


Што? Это-то тут при чем? Тру рандома вообще быть не может, а какой-нибудь твой пхп просто сам делает srand().

>>67621
Двачую, лучшее решение.
15524753678890.png1,1 Мб, 960x640
324 1367666
>>67632

>chocolatey, Scoop


Что это ща грвно, нахуй оно здесь нужно? Уебуй к смузиодминам
325 1367682
>>67632
Есть же pip под Винду, правда не уверен, что в нем есть то, что тебе нужно.
326 1367709
>>67682
так и gem и npm есть но мне же надо dev хидеры и либы типа libogg libsdl ...

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

Я не верю в это, не хочу верить. Не хочу верить что в 2019г мне придется ходить сейчас по сайтам и качать инсталяторы архивы того что мне надо для сборки потом открывать документацию и курить как же в винде пути устроены там же не сделаешь cd ~project/ && make
327 1367755
>>67709

> Просто ведь вопрошаю чем под виндой люди пользуются


mingw-w64, ответили уже. И Visual Studio еще. У крупных проектов обычно есть готовые проекты для VS, ей и собирают (msbuild все дела). Детектится по использованию ucrt, например.

> мне придется ходить сейчас по сайтам и качать инсталяторы архивы


Один инсталлятор. msys2. Внутри обычный pacman, которым ты ставишь компилятор и либы. В его же консольке собираешь либы, которых в бинарном виде не завезли.
328 1367770
>>67664

> Што? Это-то тут при чем? Тру рандома вообще быть не может, а какой-нибудь твой пхп просто сам делает srand().


Ну во первых не мой, хотя мне нравится пхп как яхык за исключением некоторых вещей,
Во вторых инструкции типа srand ни в одном известном мне процессоре тоже нет.
329 1367776
>>67755
mingw-w64 я уже качнул, но что то у меня там неправильно поставилось, msys2 на первый взгляд то что нужно, но пока не трогал, завтра попробую его и мингв через него. Но мне кажется паке тов там раз два и опчелся, но посмотрим.
А вижуал студия платная же да и проект на опенсорцные либы и флаги гцц/шланг завязан, это чисто для шинд-онли коммерческих приложений.
330 1367781
>>67770

> Во вторых инструкции типа srand


Потому что srand() это функция сишного рантайма, с чего бы ей быть инструкцией? И пхп до 7 вроде версии просто обращался к сишным rand()/srand(). Обычно (псевдо)случайные числа генерируют программно, но еще есть специальные железки для криптографии и есть инструкции типа rdrand в x86, там в качестве источника энтропии используются датчики и внутреннее (непредсказуемое) состояние, поэтому задавать seed не нужно.

>>67776

> я паке тов там раз два и опчелся


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

> А вижуал студия платная же


Community бесплатная, платные фишки для сборки не нужны. Весит только много, даже если build tools качать, это да.
331 1367825
>>67781

> Потому что srand() это функция сишного рантайма, с чего бы ей быть инструкцией?


srand это функция стандартной библиотеки которая после компиляции превратилась в инструкции процессору и обречена выдавать статически предсказанный результат. Ты никак не можешь на это повлиять этот код исполняется на железе
А рантайм он компилирует (превращает код в инструкции) во время исполнения, и по нескольку раз еще потом гонят с оптимизациями и деоптимизациями. Если даже сишная rand() после каждой компиляции программы другие числа начинает по кругу гонять, то тут то нахуя какие то srand(time(NULL)) придумывать? Где логика?

> is an instruction for returning random numbers from an Intel on-chip hardware random number generator which has been seeded by an on-chip entropy source.[2] RDRAND is available in Ivy Bridge processors


Ох лол вот это я обосрался (хотя на самом деле обосрался интел со своими нейросетями в процессорах)
332 1367874
>>67825

> srand это функция стандартной библиотеки которая после компиляции превратилась в инструкции процессору и обречена выдавать статически предсказанный результат


Она ничего не выдает, она void возвращает, привет.

> А рантайм он компилирует (превращает код в инструкции) во время исполнения


Для выражения типа state ∗ 1103515245 + 12345 абсолютно похуй, какие там были оптимизации, и когда именнно его превратили в машинный код. Оно вычисляет следующее состояние ПГСЧ (следующее случайное число), и его результат целиком зависит лишь от state. И вот как раз state и устанавливают с помощью srand.

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

> Если даже сишная rand() после каждой компиляции программы другие числа начинает по кругу гонять


Не начинает, в этом вся суть. Если не вызовешь srand() вообще, то будет одна и та же последовательность, которая зависит от реализации генератора. И насчет круга ты тоже слегка загнул. Даже у линейного конгруэнтного генератора выше период последовательности 231.
.png28 Кб, 723x413
333 1367880
Бесконечно можно вдуплять три вещи в float: это +INF, -INF и NaN.
334 1367883
>>67880
Это ты, наверное, еще не знаешь про denormals, сорта NaN и про разную псевдо-хуйню у long double в x86.
.png9 Кб, 513x127
335 1367884
>>67883
Да вообще песец полный. Там еще оказывается два нуля есть, положительный и отрицательный.
336 1367887
>>67880

>printf("%s", " ");


дай отсосу, брат
337 1367892
>>67887
Похуй, gcc все равно в putchar() свернет.
338 1367927
Ребят, я совсем нуфаг в программировании. Чем компиляторы отличаются друг от друга? вообще я доблаёб, мог бы и загуглить, пойду этим и займусь
339 1367953
>>67927
Функционал компилятора выходит за рамки того, что продиктовано стандартом. Вот в этом всем и отличаются.
340 1367993
>>67194
Братишка читай лучше сразу праймер прата.
341 1368027
Здравствуйте. Сделал задачку Пратовскую, пирамидку.
Укажете на ошибки? Подскажите еще пожалуйста как с массивом со строчкой из букв сделать можно программу, или там придется переписывать?

https://pastebin.com/EARV37u4
342 1368145
>>68027

> Укажете на ошибки?


С -Wall собери, компилятор сам укажет. Алсо, ты задачу не привел, хуй знает, что ты пытаешься сделать. Алсо, пробелы можно одним printf-ом выводить: printf("%*s", 10, "").
343 1368152
>>62799 (OP)
Задачка со звёздочкой.
Все мы знаем, что с помощью поразрядных операций можно установить, сбросить, инвертировать отдельно взятые биты одной инструкцией, не изменяя остальные биты, например, в некой 8-битной переменной tepm:

char temp; >переменная
temp |= (1 << 5); >установить пятый бит переменной, не изменяя остальные
temp &= ~(1 << 4); >сбросить чётвёртый бит переменной, не изменяя остальные
temp ^= (1 << 7); >инвертировать первый бит, не изменяя остальные

Также можно устанавливать/сбрасывать несколько битов сразу, не изменяя остальные, например:

temp |= ((1 << 5) | (1 << 3));
temp &= ~((1 << 5) | (1 << 3));
temp ^= ((1 << 5) | (1 << 3));

Вопрос: как одной инструкцией с помощью одних лишь побитовый операций, не прибегая к использованию функций, одновременно установить и сбросить несколько битов, не изменяя остальные?
344 1368202
>>68152
Не совсем понял что ты имеешь в виду.

temp = temp&~(1 << 4)^(1 << 7)|(1 << 5);
Вот это штоле?
345 1368239
>>68152

> инструкцией


Пиздец перевод. Это кто, прата?

> char temp; >переменная


> temp ^= (1 << 7); >инвертировать первый бит


> первый бит


Пиздец перевод. Алсо, запись значений больше SCHAR_MAX в signed char - implementation defined.
346 1368311
>>68152
Один бит это единица. Если нужно несколько бит, меняешь единицу на число с нужным расположением и количеством бит.
347 1368337
>>68145

>С -Wall собери, компилятор сам укажет.


Огромнейше благодарю. Одно выражение не имело смысла. Удалил, скомпилировал с C-wall и ошибок не обнаружено.
Нужно было создать с помощью циклов расширяющуюся пирамиду до введенной заглавной буквы.
348 1368615
Че-то у меня наитупейший вопрос (как-будто 2+2 разучился складывать).
Чистить надо же только после calloc, malloc, etc? Если я просто поинтер ебанул (int* p = &jopa), при выходе из области видимости православно рипнется и p и jopa?
sage 349 1368622
>>68615
Да, вручную освобождать нужно только то, что ты вручную же и выделил. Ну или если тебе какая-то либа выделила.
350 1368629
Аноны, как в С проекте прикрутить ASM файл? Чтобы как у С++ бояр красиво все было.
sage 351 1368643
>>68629
В каком проекте? Почему это должно как-то отличаться от C++, по твоему? Просто собираешь .asm в .obj и линкуешься к нему. Если IDE, то куда тыкать, зависит от IDE, а ты ее не указал.
image.png145 Кб, 1824x740
352 1368659
>>68643
Пардон. Вот хочу чтобы как на прикрилейтед было.
354 1368700
>>68694
Так это для С++ только работает.
sage 355 1368729
>>68700
Что за бред, при чем тут C++ вообще? Или тебя смущает extern "C" в декларации? Просто убери, и все.
image.png5 Кб, 458x20
356 1368754
Как на С эту конструкцию интерпретировать?
357 1368788
>>68754
Замени плюсовые касты на си-стайл касты.
358 1368883
Пацаны, объясните мне тупому почему мой код по сортировке выбором в двумерном массиве не работает?
https://ideone.com/k8SWKL
359 1368901
Почему если я пытаюсь преобразовать 6.0 в 6, то получаю 5, хотя с остальными числами всё в порядке? Как это исправит? Преобразую через цел_пер=(int)вещ_пер.
360 1368903
>>68901
То есть 6.000000
361 1368906
>>68883

>for (int k = 1; k < 6; k++)


точно не
for (int k = j+1; k < 6; k++)
362 1368907
>>68901
твое 6.0 вероятно 5.9999999998
а преобразовние приведением отбрасывает дробную часть
363 1368909
>>68883
Потому что это какая-то хуета. Перепиши с нуля и задумайся хоть немного
364 1368911
>>68907
Добавил к вещ.переменной 0.1 и всё нормально. а без этого костыля никак?
365 1368913
>>68911
Добавляй 0.5 если тебе нужно округление
Привыкай к костылям, числа с плавающей точкой это те еще сволочи
366 1368916
>>68913
Разве костыли не говнокод?
367 1368918
Вот мой тот самый код с 5 вместо 6, который я исправил. Как сделать его менее говнокодистым?
https://ideone.com/OBGEN8

Нельзя использовать что-то кроме stdio.h, нельзя массивы и циклы. Вроде это все нельзя, остальное можно. Ебал в рот тех, кто придумывает такие задания.
368 1368920
>>68918
Ах да, там нужно разделить a.b на a и b и сравнить что больше, максимум цифр после точки 5.
369 1368921
>>68916
Нет, бывают правильные костыли.
370 1368964
Решил сделать калькулятор и убил на это целый день. А ведь тут даже указателей нет. Что же дальше то будет
371 1368966
Мужчины, поясните по хардкору, чем рекурсивный спуск лучше обратной польской нотации при написании калькулятора?
372 1368979
>>68966
Потому что современные программеры — макаки, а чем меньше кода надо писать, и чем меньше задумываться над своей поделкой, тем больше макака рада.
изображение.png491 Кб, 1920x1050
373 1369008
374 1369013
>>68966

Рекурсивный спуск имеет в своей основе представление о формальных грамматиках, так что это более общее и намного шире применимое решение.
375 1369015
>>68964

>целый день


Я уже много дней бьюсь по несколько часов. Пока сделал только базовую арифметику, скобочки, степень, остаток от деления и целочисленное деление. На этом пока остановился, так-как знаний маловато, буду вникать в теорию, а потом продолжу.
https://pastebin.com/ng3s7h61

>>68966
Рекурсия легче, не надо самому динамически выделять память, но труднее ловить ошибки.
376 1369020
>>68979

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


Лол,обычно это называют эффективность.
377 1369021
>>69015
Ребята, вы делаете пиздецкий говнокод. Пожалуйста, прочитайте КиР перед тем как что-то постить в этот тред. Проделайте все (ну хотя бы процентов 70) упражнений. Это займет у вас месяц при неспешном чтении.
В результате вы разберетесь и в построении калькулятора, и в работе со строками, и в сортировке и даже в работе динамической памяти вместе с работой в файловой системе.

Нужно внести правило банить любого, чей вопрос обсуждается и решается в K&R.
мимо читавший второкурсник
378 1369025
>>69021

>страдайте хуетой месяц, и только потом программируйте


Классный способ отшить любого, привив отвращение к программированию.
379 1369027
>>69025
Я не говорю идти читать ебаный стандарт, это охуенная книга с кучей практических заданий, а не попыток этих неумех собрать из лего истребитель.
380 1369028
>>69021

>K&R


Это книга не для начинающих, а калькулятор очевидно пишет ньюфаг.
381 1369031
>>69028
Это книга специально для вкатывания и написана. Калькулятор там как раз и разбирается где-то в 4 главе
382 1369032
>>69027
Книга это хуета с хуетой. Интересно решать левые плешивые задачки только тому у кого собственных задач нет, то есть нет интереса к программированию, а вместо этого только фетиш на учебу.
383 1369034
>>69032
Наверно решать интегралы и считать плотность вероятности ты тоже учился на практике и без грамма теории, да?
Не неси хуйню, это серьезный яп системного уровня, а не петухоскрипт. С таким подходом когда он дойдет до работы с памятью ему ничего не останется как жидко пернув умереть
384 1369036
>>69031
Нет, она написана для тех кто уже умеет программировать хотя бы на каком-то другом языке.
image.png93 Кб, 1081x169
385 1369038
>>69036
Ему уже достаточно тех знаний, которые он имеет, чтобы вкатится в нее
386 1369039
>>69034
Тупая аналогия. Раблта с памятью это просто, совсем не нужно ничего зубрить как с формулами, нужно только понять, а для этого не нужно не только знаний, но доже ума, реально тупой справится. нужно только желание понять, а не писать хуйню вслепую. Но с последним отношением, опять, значит к программированию нет интереса.
387 1369045
>>69038
Может и достаточно, я начал с неё и несмог в неё совсем. И есть мнение что не я один. Прочитал перри и сейчас читаю прата.
388 1369048
>>69021
А мне нравится мой говнокод. Для вас может смешно, но для меня это первая более-менее крупная программа на Си, которая работает и уже была успешно использована по назначению.
389 1369051
>>69045
Читаю сейчас "Язык программирования C. Лекции и упражнения, 6-е издание" Прата. По ощущениям написано очень растянуто, зато всё понятно.

калькуляторщик
390 1369052
Пролистал Перри, прочитал оглавление Прата.
пиздец пиздец пиздец

Вам реально в кайф жрать 1000 страничное дерьмо вместо книги на 200 страниц от создателей языка и по совместительству людей, написавших unix?

Охуеть, не хочу учить как деды и байтоебы, хочу хвастаться перед мамкой количеством страниц. Поссал на вас.
391 1369056
>>69021
Всегда смешат дети вроде тебя с непомерным чсв.
392 1369060
>>69056
Да, есть такое. Хоть на дваче могу побыть чсв-уебаном, а ирл я полуметровый няша-стесняша :3
393 1369061
>>69052
Сейчас современность, поэтому начали с современного чтива, а олдовую книгу от отцов-основателей тоже почитаем, когда руки дойдут, не волнуйся.
394 1369067
Это же гении со школы™21™ опять набегают, нахуй вы им помогаете?
395 1369091
>>69052
Зачем мне читать кривой манула дидов если есть благородная книжка где все не торопясь и обстоятельно изложено? Ем флорентину, попиваю джек дениелс и покуривая сигару читаю перед камином, а ты завидуй плебей.
396 1369100
>>69091
Могу позавидовать. Слабоумные более счастливы. А дедовские книги не кривые. Просто написаны в то время, когда комп был не у каждого примата, а только у тех, с кем можно поговорить как с homo obrazovannies, а не кормить тысячами страниц, от которых мозг отключается. Учил по K&R и не чувствовал себя кретином, сосите залупу, честь имею.
397 1369102
>>69100
Ну раз ты так учил то конечно все так должны учить, дед. Все кто не так учат неучи и балбесы. Ппц ты песком сыплеш, старпер.
398 1369106
>>69025
Бедняжка. Небось, мать наехала "вон у Ленки-то сын за 2 недели программизм освоил и дом родителям купил, не то что ты, нахлебник..."
Труъ-кодеры всем скопом поссали тебе на лицо, оставив немного для следующего анона, кому тоже месяц (не 5 лет, не год даже, а МЕСЯЦ БЛЯДЬ) учебы - унижение. У гуманитариев понятие глубины, видать, из коробки поломано.
399 1369108
>>69102
На связи кун 20лвл, простатит, хронический вывих ключицы ноги, задавайте ответы.
400 1369112
>>69108

>задавайте ответы


Почему нет геморроя?
401 1369116
>>69112
Пакет с дрисней под ребром, жопа не эксплуатируется за ненадобностью.
402 1369133
>>68918
Что за пиздец, без циклов и всего остального это вообще выглядит как несвязанный шизофазический бред, странный у вас препод.
403 1369134
>>69116
Как добился?
404 1369136
>>69045
>>69021
Хуй знает, я вообще особо си не учил, так было полкурса в универе, перед плюсами, вот их более менее учил, в основном по курсам с ютубчика, пробовал читать какую-то книжку, осилил страниц 200 может, потом забил хуй.
Но я очень быстро информацию усваиваю, может в этом дело.
кернел-дев-20-лвл
405 1369137
>>69136

>кернел-дев-20-лвл


Кернел в Барби и поняшках*
406 1369138
>>69137
Мои комиты есть в ядре линукса, да и на работе я драйвер пишу, собственно связанные с ним патчи туда и отправляются, шутник.
407 1369139
>>69138

> комиты есть в ядре линукса


Ебать ты говномес, ты уже понял, что ядро линуха это показатель того как не нужно разрабатывать ПО?
408 1369140
>>69139
Общий уровень кода так себе конечно, благо я работаю не надо самим ядром, а просто портим драйвер в апстрим периодически.
Но как опыт для первой работы я щитаю довольно хороший.
алсо помимо линуха ещё QNX дёргаю, в теории можно ещё DPDK и Винду потыкать
409 1369141
>>69140

>QNX дёргаю, в теории можно ещё DPDK


Чому L4 не дергаешь и прочие ядра созданные инженерами?
410 1369145
>>69141
На самом деле я даже не знаю, что этону видимо пока кастомерам это не нужно, да и вообще вряд ли будет нужно, учитывая что мы мультигиговый езернет разрабатываем как бы, вероятно поддержку вайфай 6 тоже будем делать совместно с квалкомом, а QNX очень даже, на нем весь аутомотив будет держаться, поэтому и пилим.
411 1369148
Задал похожий вопрос в плюсотреде. Зачем писать на сях, если есть нативный интероп с растом? Пишите весь новый код на расте и интегрируйте его в существующие проекты. (Это не касается embedded, тут раст пока не стабилен)
412 1369149
>>69148

>Пишите весь новый код на расте


Зачем?
413 1369151
>>69149
Удобнее обработка ошибок, строгая, статическая типизация, проблемы с памятью решаются на этапе компиляции, darta races отлавливаются на этапе компиляции, алгебраические типы данных, статический полиморфизм, макросы получше, производительность такая же, можно юзать уже существующие библиотеки на C и C++.

Короче 0 минусов, одни плюсы.
414 1369153
>>69151

>Статическая типизация


Поехавший? Ты в си треде если что, а не в треде КулСмузиСкрипт2010.

>Проблемы с памятью


Какие проблемы с памятью?
415 1369156
>>69151
Не убедил
416 1369157
>>69153
Акцент на строгости типизации. Я в курсе, что в сях она статическая, лол. Хотя с учетом того, что в реальном сишном проекте ехал void через void и другие веселые касты для имитации ооп, то от статической типизации тут одно название.

И не надо строить из себя целочку, мол память не течет, не бьется и вообще все заебись. Тонны тулинга для битья кожаным мешкам по рукам существуют не от хорошей жизни.
417 1369158
>>69157
Парсер съел звездочки возле void
418 1369159
>>69157
Реальный сишный проект не пишется с нуля, а переписывается с прототипа что бы было очень быстро
419 1369162
>>69159
Спасибо, кеп..Только зачем ты это написал? Я же пояснил выше, что не в embedded и на популярных архитектурах у C нет преимущств ни в чем. Даже в скорости.
420 1369164
>>69162
Спасибо, Раст создавался под Файервокс, это тормозящее говно я удалил со всех устройств, в какой там ембедед вы еще хотите я не понимаю.
421 1369168
>>69164
Я тоже FF не пользуюсь, но я гуглил бенчмарки последних версий FF, куда намержили подсистем на расте из servo. Так там все +/- как в хроме с производительностью
422 1369169
>>69168
Не понятно твое копротивление, что ты хочешь то?
423 1369194
>>69157

> ехал void через void и другие веселые касты для имитации ооп


kek тоже прям сразу в глаза бросилось, и потом когда программа падает непойми из за чего приходится консоль-логами фпринтами ловить.
Си,Сипп, жс три брата акробата, костыльные во многом и архаичные но каждый в своей области мэинстрим.
424 1369199
>>69148
А нахуя мне раст? Вот потихоньку на Си пилю валидатор некоторых файлов текстовых. Процесс вполне идет, не вижу причин менять язык.
425 1369200
>>69148
Мы тут угораем по духу старой школы, не мешай.
426 1369202
>>69199
Ужасно. Валидатор текстовых файлов это не программа, кроторую сделал и люди пользуются, а задача для скрипта. Текстовые файлы постоянно меняются, и ты будешь на каждый пук пересобирать свой высер? Я уже не говорю, что там кода нагорожено, кроме тебя никто не разберется. Короче, тут два варианта, либо ты умный мудак, который специально делает такое говно защитить свою незаменимость, либо необучаемый колхозный идиот, которому лень изучить лучший инструмент под задачу.
427 1369203
>>69202
А я и делаю для себя, в общем-то. С перспективой допила в нормальный редактор файлов такого формата.
Для души, короче. Ну и я необучаемый еблан, который как встретил Си, так на нем и застрял
428 1369205
>>69203

>спойлер


Я тоже, лол, но тут нечем гордиться.
Хотя, по правде, писал и на вижуал бейсике, джаве, решетке, но в конце концов мне нужны в основном программы, и тут только сишка нормальная, а для скриптообразных задач вроде программ для работы через веб-парашу, решетка удобнее, я ебал пердолиться на сях с этими сетевыми запросами. И решетка по крайней мере хотя бы экзешники делает как у людей, работающие терпимо, хоть и медленнее.
429 1369206
>>69205

>ебал пердолиться


Си язык не для тебя.
430 1369207
>>69205
Ну в решетке анальное ООП, уже сложно.
431 1369226
>>69148
Тыкал палочкой в раст, не понравилось что хелловорд весит два метра, а то и больше. Го тоже выдает столь же жирные хеловорды. Ди выдает чуть поменьше - 300 кб, но там сборщик мусора хоть есть, а что впихнули такого жирного в раст - не понятно. А на няшной всего два килобайта получается на tcc и 30 на gcc. Кресты не пробовал, но там вроде тоже всё няшно.
432 1369233
>>69207
А сях тоже анальные функции, те же яйца, даже выглядит одинаково. Никто ведь не заставляет лепить функции на каждый пук, как и классы и тем более иерархии. Только дебилы лепят говно потому что оно есть в языке. Просто считай что название и скобочки это условный символы для обрамления кода, и всё, никаких проблем, ооп, функций, и прочего ненужного говна. Просто спроси себя: "Язык для меня, или я для языка? Кто главнее, кто кому подчиняется?" и будет ясно чмо ты позорное или человек.
433 1369237
>>69226
Си это системный, машинный язык. Какой код написал, такой и получил.
Раст это веб-параша. Декларативная хуйня для определенных действий, а какой там будет код всем похуй. Вебмакакам похуй на код, у них хозяин богатый, если будет тупить/тормозить просто добавит еще серверов.
434 1369262
>>69226
Херово тыкал, че. Я тоже удивился от бинаря в полтора мегабайта на одном принте в консоль. Когда как у С и С++ выходит по 8кб. Минутный гуглеж и раст тоже выдал бинарник в 9кб.
435 1369274
>>69262
а на асме меньше 1кб, ибо main НИНУЖЕН нахуй, под меткой _start: отпечатываешься и милости просим exit 0) Эх, аж плакать хочется...
436 1369281
>>69274
Да похуй как-то. Я лучше залинкую libunwind и стандартную библиотеку(те самые полтора мегабайта), получу производительность как на асме, чем буду экономить сраные полтора мегабайта, пердолиться в десять раз больше и получить ту же производительность. Полтора мегабайта, в которые входит куча полезных библиотек, которые нужны всем и всегда, это не 30мб у джавы, в которые напиханы даже аллах и твоя мамка
437 1369287
>>69281

>это не 30мб у джавы


>почему вы так плохо живете?


>а хохлы еще хуже!


Это не ответ, а виляние жопой, лишь подтверждающее.
438 1369290
>>69287
Т.е. неудобность разработки и отстутствие уверенности в сесурности написанного кода - это нормально, а 1.5мб бинарника - ето плохо. Если что, раст по умолчанию линкует все статически, в 1.5мб залинковано много всего - stdlib, libunwind, pthreads и другое. Если ты в сях юзаешь динамически эти либы,то ВНЕЗАПНО в памяти процесса будут загружены все те же либы. Да, они будут шариться с другими процессами, но все же.

Я уже написал, что в расте можно линковать динамически и тогда все будет как по дефолту в С
439 1369301
>>69290

>Т.е. неудобность разработки и отстутствие уверенности в сесурности написанного кода - это нормально


"Уверенность" это мемчик дебилов, заменяющий мышление. Для таких есть Питон, уверенный язык, вот и нахуй иди в свой загон.
440 1369306
>>69301
В расте на этапе компиляции работает статический анализ. Ты разве не юзаешь его в своих проектах? А санитайзеры? Если нет, то ты максимум лабу в универе пишешь и дальше общаться я смысла не вижу. Вообще все мои сообщения адресованы сеньерам, которые по какой-то причине еще не читали/думали над внедрением раста. ты явно не входишь в их число, так что можешь идти нахуй
441 1369309
>>69306
Эй, тебе сколько растоадептов до понедельника набрать нужно?
442 1369310
Давайте ебаться в жопу, это удобно и практично. Вот ты не ебешься в жопу почему? Ебись в жопу, это модно.
443 1369312
>>69306
Блять, ебанат, ты понимаешь что в си проектах люди юзают свои либы? А уж особенно эмбедщики, пишущие, можно сказать на совершенно другом языке. Твой Раст это пердеж для хипстеров-уебанов без образования. И не надо сейчас пукать что нинужно, лучше просто съеби.
444 1369313
>>69312
Люби Раст, сука111
445 1369317
>>62799 (OP)
Люби Раст, ебись в жопу111
446 1369333
>>69310
>>69313
>>69317
>>69309

>натужно шутим, потому что посуществу аргументы не придумываются



>>69312
Про эмбедед я ни слова не писал, раст еще сырой для этого.
Про либы - я не понял, к чему ты это высрал. Либы можно не выкидывать, вызывать из раста сишные либы, а из С - растовские. Интероп же. unwind, stdlib и прочее можно не юзать, никто не заставляет. Просто это удобно и накладных расходов мало.
447 1369336
>>69333

>аргументы


>растодебил перепутал тред

448 1369337
>>69333
Чем жопу смазываешь?
449 1369339
>>69333
Есть аргументы по существу, что не нужно ебаться в жопу?
450 1369354
>>69339
Define ебаться в жопу в контексте программирования
451 1369360
>>69354
В каком нахуй контексте, поехавший растодебил
image.png150 Кб, 1888x826
452 1369425
Ну и что с этим делать? Происходит это на обычном принтфе, при том какое-то кол-во этих самых принтфов проходят нормально, но после определенного такая хуйня.
453 1369432
>>69425
Варианты:
- Долго и нудно дебажить код, выставляя memory breakpoints
- Запустить PVS-Studio или аналог
- Юзать санитайзеры (intel inspector, appverifier, встроенные в clang(если можешь скомпилить под него))
454 1369443
>>69425
Как индекс может быть -1?
455 1369488
>>68729
Действительно, затупил ночью. Чаю, все работает.
456 1369499
>>69425
Ну так определи после чего именно хуйня начинается. Ты скорее всего где-то за буфер лезешь.
457 1369609
>>69425
Так может ты нам принтф покажешь, а не кишки crt? Хотя у меня такое чувство, что ты как-то CRT ломаешь, а printf просто не повезло обращаться к сломанному.

>>69443

> Как индекс может быть -1?


А почему нет? Тебе важно лишь не вылезать за пределы объекта при обращении к памяти.
char array[3] = { 'a', 'b', 'c' };
char ∗parray = &array[1];
printf("[0] = %c, [-1] = %c\n", parray[0], parray[-1]);
458 1369651
Пиздец ^^^^^^^
Вы тоже это видите? 0_0
459 1369670
>>69609
но зачем
460 1369684
>>69670
В обсуждаемом выше скриншоте анона это сделано, чтобы EOF (-1) можно было передавать в ctype-функции и получать при этом валидные результаты. Да, можно было прибавлять 1 везде при обращении к массиву, но пришлось бы писать комментарий об этом в коде, который обращается и при объявлении этого массива тоже пояснять, почему там элемент для '\0' по индексу 1. (Просто предположение; не знаю, чем там у Microsoft думают.)
image.png142 Кб, 852x659
461 1369719
Ебал матерей переводчиков.
462 1369721
>>69719
Согласен, на вид неоч.
463 1369722
Круто
464 1369823
Двач, можно ли как-нибудь покороче проверить равна ли переменная ряду значений? Не вот так: if(variable == 0 || variable == 1 || variable == 2){}, а как-нибудь так: if(variable == 0, 1, 2){}?
465 1369827
>>69823
для целочисленных значений на switch можешь заменить
466 1369833
>>69827
Неактуально для небольшого количества значений. Ещё больше кода будет.
467 1369835
>>69823
У gcc/mingw есть рейндж расширения стандарта для кейсов, можно писать типа
switch (val)
{
case 0 ... 2:
case 10:
//
break;
default:
//
break;
}
468 1369857
>>69823
битовые маски
469 1369863
>>69823
[code]if(value>0 && value<3)[/code] уже не катит?
470 1369968
>>69823
For++?
471 1370013
да это какой-то тролль ведет к тому, чтоб сказать "сишка примитивна, пихтон могусчество"
472 1370034
>>70013

> сишка примитивна


Ну так и заебись же, легче того же питона в освоении.
Поделитесь хорошей либой-хедером с ассертами
473 1370059
Openssl с 11/17 стандартами нормально работает?
474 1370095
>>70034

> либой-хедером с ассертами


assert.h, чего тебе там не хватает?

>>70059
Ты можешь свободно линковать код на C11 и C89. Лишь бы стандартная либа в последнюю версию могла (в основном из-за всяких _Thread_local для errno и т.п., хотя оно и до стандартизации у всех было).
475 1370157
>>70095
У openssl, наскока я помню, свой эррор хендлинг, и в потоки она не может, т.к. технология под std99 сделана, поэтому тут с 17 версией, где потоки уже дефолт могут понадобится костыли в большом количестве. С 11 все точно ок должно быть
476 1370166
>>69823

>равна ряду значений


Вот что получается когда а программирование протекает женская логика.
477 1370167
Поясните какого хуя у меня вот эта хуйня пишет только последнее значение в массиве т.е для i=9 ?

for (i=0; i<9; i++);
{
printf("%c \n" , buffer);
}
478 1370168
>>70167
Лол
479 1370170
>>70168
Ебучий Абу проебал всю разметку. Так в чем проблема?
480 1370172
>>70170
Скинь код полностью. Тебе нужно вывести 0-9 элементов массива в буквенном виде?
481 1370179
>>70172
#include <stdio.h>
#include <time.h>

int main(void)
{
int i=0;

time_t timer;
char buffer[26];
struct tm* tm_info;

time(&timer);
tm_info = localtime(&timer);

strftime(buffer, 26, "%Y-%m-%d", tm_info);

Ну а дальше идёт как раз цикл for. Переделал его под while и все нормально работает. В чем дело?
482 1370181
>>70179
Добавь buffer++;
483 1370182
>>70167

>for (i=0; i<9; i++); <<<


> ; <

484 1370184
>>70179
#include <stdio.h>
#include <time.h>

int main(void)
{
int i=0;

time_t timer;
char buffer[26];
struct tm* tm_info;

time(&timer);
tm_info = localtime(&timer);

strftime(buffer, 26, "%Y-%m-%d", tm_info);

for (i=0; i<9; i++)
printf("%c \n" , buffer);

return 0;
}
485 1370185
где в хкоде переключиться на х86 архитектуру?
486 1370186
>>70184
printf("%c \n" , buffer);
487 1370187
ну короче ты понял, абу скобки кроет короч
488 1370189
>>70167
Переменная buffer содержит адресс массива, в принтфе ты 9 раз выводишь первый байт адреса в виде символа. Иди читай документацию по принтфу.
489 1370190
>>70181
Это куда? У меня же и так printf ("%c \n", buffer[и]); и по условию он должен и так меняться.
490 1370191
>>70189
Я не на весь массив ссылаюсь, а на i-й элемент.
491 1370192
>>70189
У него есть там ([это]), просто разметка не позволяет сюда вывести.
492 1370193
>>70190
>>70191
Пиздец ты дебил.
493 1370194
>>70192

>У него есть там


Не оправдывай малолетнего олигофрена, нет там нихуя.
494 1370196
>>70193
>>70194
Хули ты такой ебанутый и агрессивный?
495 1370197
>>70196

>КУДАХ БАБАХ КУКАРЕКУ


As expected.
496 1370198
У вас всегда такие >>70197 ебанутые в треде?
497 1370199
>>70197
Бля, поцан хотел просто помощи получить.

Ну чтож помянем.
image.png38 Кб, 1204x390
498 1370204
>>70199
Ну и он её получил.
499 1370205
>>70204
И где тут решение? Должна была вывестись текущая дата.
изображение.png15 Кб, 796x389
500 1370207
Прекращу этот цирк что-ли.
501 1370220
Читаю и так и не понимаю зачем нужны указатели. Думал может прата почитаю и пойму но там какая-то словесная дрисня в стиле указываем указателем на указываемое. Ехал масло маслянное. Возникает ощущение что переводчик поклал и перевел транслитом вообще не вдумываясь написанное.
502 1370221
Пиздец говнокод блять. Выведи уж тогда через &buffer[i * 1] если ты уебан со скриптопарашей головного мозга
Screenshot2019-03-26-13-47-43-889com.n0n3m4.droidc.png131 Кб, 1080x1920
503 1370226
>>70207
Это не то что мне нужно. Мне нужно выводить по 1 элементу массива, а не весь целиком. Вот так надо.

Да и ты не решил проблему, а просто обошел ее мимо. Почему цикл for не работает как надо?
504 1370227
>>70220

>переводчик


Slaveянин, please.
изображение.png17 Кб, 861x422
505 1370228
>>70226
В смысле блять не работает как надо? А как тебе надо?
506 1370229
>>70226
Потому что у тебя ошибка в ДНК
/тред
507 1370230
>>70228
Грешно смеяться над юродивым, ананчик.
508 1370231
>>69237

>Вебмакакам похуй на код, у них хозяин богатый, если будет тупить/тормозить просто добавит еще серверов.



Вебмакакам как раз не похуй - их код запускается у конечных юзеров в том числе и на некромобилочках с засраным ведроидом пятилетней давности, и если у их заказчика клиенты не закажут доставку сраной пыццы, потому что зависло на смартфоне - то их ждет долгая анальная неделя.
509 1370233
>>70226
Блять идиот, потому что тебе нужно вывести элемент n по адресу &buffer[n1] (n++) или str (str++), а ты пытаешься вывести в каждой итерации весь массив со спецификатором const char
Короче иди нахуй
И да если ты хочешь чему-то научиться, в первую очередь выбрось принтф из своего кода
510 1370234
>>70233

>(Star)str (str++)

511 1370235
>>70233
И как мне блять отлаживать?
Мимо
512 1370237
>>70235
Никак, нахуй иди.
513 1370245
>>70237
Я Дао постигнуть хочу, Учитель научи.
514 1370247
>>70245
Это какой-то токсичный хуесос тут семенит.
515 1370248
>>70245
заебал, ты из какого языка такой прикатился сюда, что ты не можешь массив вывести сука?
https://wandbox.org/permlink/5tseLtkRjIJalAGE
на нахуй и съеби отсюда
516 1370249
>>70229
>>70221
>>70230
>>70233

Какого хуя в треде одни агрессивные уебаны? Пришел новичок спросить в тред, а его вместо помощи хуями облажили. Хуею с треда.
517 1370251
>>70248
Хорошая чмоха, послушная.
Еще хуй мне отсосать не забудь.
518 1370252
>>70249

>облажили


Уроки-то сделал?
519 1370253
>>70249
с чего ты хуеешь, семен? Тебе сказали какая и где у тебя ошибка, уже даже притащили решение
520 1370255
>>70251
я даже написал в стиле твоего дохлого питона чтобы ты глазьки свои бедьненькие не сломал уебан не способный поставить нужный спецификатор в принтф
image.png173 Кб, 1152x864
521 1370257
Вы это видите, blyad??? Демоническое \t во всплывающем посте в отличие от поста на месте в ленте.
522 1370258
>>70255
Теперь глотай, пидарок.
523 1370260
>>70226
>>70182
У тебя точка с запятой стоит в for перед printf.
524 1370261
>>70167
>>70260
шоб мимопроходящий сразу охватил суть срача)
525 1370262
>>70227
Причем тут это? Автор дебич берет тему указателей, которая и так сложная для нубов, а потом говорит вот есть многомерные массивы давайте еще тут про указатели чтобы было окончательно непонятно если вдруг было понятно, и тут же еще начинает затирать за уровни косвенности. Вот зачем так делать?
526 1370270
>>70262

>читает в переводе


>кукарекает


Типичный русский типичен.
527 1370272
>>70262
Что нахуй может быть непонятного в указателях? Указатель = переменная с адресом. Все. Что вы там сложного находите блять?
528 1370274
>>70248
Извините, а в чем заключается сакральный смысл использования write() вместо printf() ?
529 1370275
>>70272

>Что вы там сложного находите блять?


Очевидно же лишнюю хромосому
>>70274
Да.
530 1370276
>>70274
Не вместо, а когда в машинном (не человекочитаемом символьном) виде надо данные в голову файла загнать, например.
531 1370278
>>70272

>Что вы там сложного находите блять?


Нубы не мыслят критериями адресов в памяти.
>>70270
>>70275
Хуй соси, токсичная манька. Тебя видимо питоноеб с утра выебал и поэтому ты такой агрессивный.
532 1370279
>>70274
Вот, например, мой велосипед, который сугубо Хаффменовским кодом сжимает буржуйские тексты в среднем почти в 2 раза. Что бы я делал без fwrite()?
https://github.com/PolazhinetsA/univer/blob/master/kod.c
533 1370280
>>70278

>категориями адресов в памяти


пофиксил
изображение.png662 Кб, 700x525
534 1370282
>>70278
>>70279
>>70280
Пиздец ты чмырдяй.
535 1370284
>>70282
2 из 3, деанонизатор. 1370278 не я писал.
536 1370285
>>70282
Только не надо Сишный пост с Пикабу сюда тащить. Мне за него пиздец стыдно)
изображение.png32 Кб, 498x315
537 1370291
>>70284

>не я писал.


Все вы одинаковые.
>>70285

>)


Обосрался, маленький, еще и обмазался весь.
538 1370292
Хочу слинковать несколько объектных файлов, написанных на разных языках, в один исполняемый файл. Работаю под виндой. Какие есть аналоги ld и make для винды с возможностью задать скрипт линкера в том же формате, в каком его пишут под линуксом? Cygwin не нужен.
539 1370300
>>70220
тащемта все легко
вот у тебя есть переменная допустим
char anus со значением "jopa"
и есть переменная-указатель
char (star)dirka, ты можешь присвоить ей значение, находящееся по адресу переменной anus (star)dirka = &anus

Теперь твоя переменная (star)dirka содержит указатель на ячейку памяти, в которой хранится переменная anus.
Теперь, чтобы не ебаться с первой переменной, ты можешь передаватб нескольким функциям указатель на анус, и они смогут найти по нему твой anus и расширить твою жопу с jopa до joopa.
Таким же образом, если, допустим, anus - это важная переменная записывающая в себя кучу флагов по всей программе, ты можешь задавать поинтеру точный адрес внутри ануса, зная, что в этом месте массива запишется какая-то инфа, которую тебе потом надо будет вызвать (star)dirka = &anus[n a]
Ты так же можешь создавать массивы указателей. А можешь и создать n-мерный массив указателей, в котором будут лежать указатели на n n указателей на ((n n)
* n)-мерные массивы указателей указывающие на w-мерные указатели.
есть еще указатели в структурах. Если объект структуры является указателем, то обращение к нему происходит через стрелку list->next,
если обхект структуры указателем не является, то обращаешься к нему по его местонахождению (т.е. разыменовываешь) через точку tvoya_jopa.shirina

еще можно создавать указатели на фукнции, и даже массивы указателей на функции, и можно даже их вызывать вместо функций, но я давно не пишу на си поэтому уже слабо представляю какой в этом смысл.
короче поинтеры оч важная хуйня в ассемблере. выделил в каком-то месте память, запомнил его поинтером, а потом не заебываясь снес поинтер и пошел дальше своими делами заниматься.
540 1370301
>>70291
да похуй, и так перекат скоро
541 1370309
>>70301

>похуй


Принято, в новом треде первыми же постами полный деанан.
542 1370313
>>70309
Хорош деанон, когда я сам ни капли не скрываюсь в тех местах, где подписан PolazhinetsA. Держи задачку посложнее. Тащи сюда фотки моего хуя с Reddit.
543 1370315
>>70313

>хуя


Слишком громкое название для твоих 12 см.
544 1370318
>>70315
Твоя мать полметровую линейку не тем концом приложила, вот и выслушиваешь потом "прикинь, сынок, спала с одним аноном, у него 12см, а ощущения на все 38"
545 1370322
>>70274
printf это не функция а макро алиас главной __printf__ функции. Вызывая прототип принтф, а потом и сам его сишник, компилятор только форматирует текст и понимает, что вызвана stdoutput часть большой __printf__ функции, затем, получив отформатированный однострочный массив, выводит его посимвольно. С write та же история, только памяти она потребляет в несколько раз меньше и сразу выводит посимвольно. Ах да, printf еще запускает функции рекурсивно, а аутпут от write будет только из зоны видимости.
Ну и главный сдешний миф, что мол принтф хорошая вещь для дебага - полнейший бред. Большая часть ошибок на любом этапе работы с большинством C проектов из-за хуевого железа и хуевой памяти, с чем принтф абсолютно не поможет, а только усугубит проблемы
546 1370326
>>70220
я с праты тоже сразу ничего не понял, и забил, потом покукарекал в гейос, но там все еще хуже (субЪективно)
547 1370329
>>70270
петуххохол закукарекал захрюкал
перекат 549 1370350

>>268534


>>268534


>>268534


>>268534


>>268534

550 1370354
>>70272

> Что вы там сложного находите блять?


То шо звездочка тама используется и при объявлении указателя и для получении значения по адресу, помимо ее математической функции. Запутаться можно.
551 1370355
>>70350
хуйня какая-то получилось)
552 1370365
>>70355

>хуйня какая-то получилось)


Вся твоя жизнь в трех словах.
553 1370367
>>70365
Ты бот?
554 1370369
>>70322
А как же хуевый код...
555 1370385
>>70367
Даже ботом быть лучше чем тобой, ананчик.
556 1370394
>>70385
Только если ты написан на сишечке.
557 1370398
>>70300

>вот у тебя есть переменная допустим


>char anus со значением "jopa"


>и есть переменная-указатель


>char (star)dirka


Спасибо, после объяснения уровня б стало чуть более понятно.
558 1370422
>>70394

>ты написан на сишечке.


Ты знал ^_^
559 1370454
>>70292
Бамп вопросу.
560 1370495
>>70279
Максимально нечитаемый код, форматирование do..while так вообще напоминает шутки о параллельном программировании. И коды у тебя неправильные.

>>70454
ld из комплекта mingw. В этом треде где-то вверху обсуждали.
ПЕРЕКАТ # OP 561 1370499
Не понял, что у вас с предыдущим перекатом получилось, но вот вам еще один:

>>1370497 (OP)
>>1370497 (OP)
>>1370497 (OP)
>>1370497 (OP)
>>1370497 (OP)
562 1370545
>>70495

>И коды у тебя неправильные


Этот момент не понял...
563 1370640
>>70545
Ну я нормально не смотрел, но: сжатый-разжатый исходный код самой программы превращается в мусор. Размер минимального кода более чем один бит, хотя пробел должно было бы в один бит свернуть. Размер кода (вроде бы) не лимитируется - попробуй пожать и разжать текст, в котором частоты символов соответствуют последовательности фибоначчи (abccdddeeeeeffffffff ну ты понел).
564 1370652
>>69148
Ну и нахуй он нужен? На сях сейчас пишут только системщину и возможности языка отлично позволяют это делать без каких либо проблем. Еще раз повторяю, нахуй нужен раст то?
565 1370705
Почему все так плохо с вводом-выводом текста? Вместо нормальной библиотеки ввода-вывода куча printf, gets/puts, fgets/puts, gets_s/puts_s. Чтобы ввести строку текста надо знать 3 оператора с ньюансами их работы по выделению памяти, работе с невидимыми символами и еще всяким вуду. Зачем? Кто там пилил с11, это же полный пиздец. В итоге простая вещь как ввод строки превращается в мозгоебство. Вот нахуй так жить?
566 1370712
>>1370497 (OP)
>>1370497 (OP)
>>1370497 (OP)
Перекат.
Оп-хуй кидай ссылку на новый тред в старый.
567 1370916
Тред утонул или удален.
Это копия, сохраненная 10 апреля 2019 года.

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

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски