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


Ответить в тред Ответить в тред

<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
567 47 145

C Programming Language #41 /clang/ Аноним # OP 12/03/19 Втр 00:50:13 13627991
C Programming L[...].png (78Кб, 792x1023)
792x1023
Тред, посвященный прародителю всех С-подобных языков и по совместительству единственному идеальному и всесторонне годному средству программирования как на системном, так и на прикладном уровне.

Пожалуйста, пользуйтесь 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/
Аноним 12/03/19 Втр 01:06:19 13628022
>>1362799 (OP)
Скажите уже раз и навсегда, чё юзать на линуксе шланг или гсс
Аноним 12/03/19 Втр 01:10:41 13628033
>>1362802
То, что тебе больше нравится. Если похуй - подкинь монетку.
Аноним 12/03/19 Втр 01:34:31 13628054
Аноним 12/03/19 Втр 08:58:40 13628675
>>1362802
Ох уж этот пердо-рабский менталитет. Пока было одно от царя и бога, они спокойны, как только появился выбор из целых двух вариантов - ох, ах, мам, янизнаю что выбрать, пасаветуйти за меня, мне самому слишком сложно, не привык думать и решать за самостоятельно.
Аноним 12/03/19 Втр 09:43:18 13628776
>>1362867
> Ох уж этот пердо-рабский менталитет
А был быфронтендский сказали бы "ох блять, теперь придется в джвух проверять как код конпилируется"
Аноним 12/03/19 Втр 23:38:15 13632217
>>1362802
Я юзаю tcc, но я на окнах. На линуксах тоже его бы юзал, наверное.
Аноним 12/03/19 Втр 23:57:13 13632318
.png (24Кб, 508x500)
508x500
Аноним 13/03/19 Срд 00:39:35 13632389
>>1363231
default:
puts("Напиши свой компилятор, с блэкджеком и шлюхами!");

да, я знаю, что в эту ветку не зайдет, потому и дописал этот вариант не стоит вскрывать эту тему
Аноним 13/03/19 Срд 00:39:55 136323910
Аноним 13/03/19 Срд 00:41:07 136324011
>>1363221
Когда-нибудь ты вырастешь и перестанешь. Это >>1363231 тоже ты? Вот если бы поставил на первое место tcc, было бы тонко. Угадай, какое число сгенерирует твой код, если RAND_MAX == INT_MAX (в glibc, например)? Не делай так больше.
Аноним 13/03/19 Срд 00:42:56 136324212
>>1363240
Сука, а я-то думал, чому мой детектор тревогу бьет на этот кусок кода.
Аноним 13/03/19 Срд 10:43:58 136333313
>>1363231
ну бляяяд, почему бы не просто rand() % 3 ??
Аноним 13/03/19 Срд 12:48:27 136338414
>>1363240
>Угадай, какое число сгенерирует твой код, если RAND_MAX == INT_MAX (в glibc, например)?
Какое?
>>1363333
Хм, так действительно проще.
Аноним 13/03/19 Срд 16:24:15 136350315
>>1363384
> Какое?
Либо результат, умноженный на три, будет меньше INT_MAX просто потому, что он меньше, либо будет переполнение, и при переполнении остаток тоже будет меньше INT_MAX. Значит, при делении на INT_MAX ты всегда будешь получать ноль. Ну разве что ты найдешь компьютер, где INT_MAX делится на 3, тогда ты ради разноообразия будешь изредка получать 1, но не больше.
Аноним 14/03/19 Чтв 11:01:29 136402316
Программисты хуесосы. 30 лет языку и нет ни одной нормально написанной книги.
Аноним 14/03/19 Чтв 11:11:06 136402517
image.png (95Кб, 677x402)
677x402
Почему бичи не смогли переносы нормально расставить в учебнике? Ну неужели нельзя хотя бы в книжке форматировать код так чтобы его было удобно читать?
Аноним 14/03/19 Чтв 11:11:14 136402618
Аноним 14/03/19 Чтв 11:28:19 136403319
>>1364023
что-то ты не выспался
Аноним 14/03/19 Чтв 13:22:20 136409220
Как написать интерпретатор своего охуительного языка прогромирования на си?
Аноним 14/03/19 Чтв 14:59:01 136414521
Аноним 14/03/19 Чтв 15:01:48 136414822
Помогите плиз. Лучше вас на доске в этой байтоебле наверно никто не разберется.
Мне нужно читать бинарные файлы и редактировать их.
Например.
Есть картинка в raw-формате. Мне нужно считать из этой картинки величины для всех пикселей и поместить их в соответствующий двухмерный массив. Вроде бы простая задачка, но я не понимаю, как читать из бинарника по одному байту. Работал только с текстовыми файлами, а там чтение построчно, все проще.
Аноним 14/03/19 Чтв 15:13:21 136415723
>>1364145
Виртуальные машины меня пока не интересуют. Я хочу сделать удобный консольный калькулятор с блекджеком и шлюхами, а то обычный гуишный совсем не удобный.
Аноним 14/03/19 Чтв 15:19:00 136415924
>>1364148
А потом что с этим массивом будешь делать?
Аноним 14/03/19 Чтв 15:22:39 136416025
>>1364159
Неважно. Мне не только raw-файлы надо читать, это только как пример.
В raw-файле каждый байт - это 1 пиксель, число в байте - это интенсивность белого цвета. Мне надо как то побайтно прочитать.
Как это сделать? Сначала записать в память все содержимое файла, а потом уже побайтно отсекать?
Аноним 14/03/19 Чтв 15:33:34 136417526
>>1364160
Да и так и так можно, лол. Си разрешает к массиву обращаться хоть как к одномерному, хоть как к трехмерному, етц. Главное, за пределы не вылететь.

В общем, Интернет тебе в руки, fread в поисковую строку и удачи.
Аноним 14/03/19 Чтв 15:37:11 136418027
>>1364160
Я такое в сишке ни разу не делал, тоже интересно. Делал подобное в питоне (он совсем тормозной для этих дел) и дишке. В дишке все замечательно получалось - читал файл сразу крупными кусками, обрабатывал и складывал массив, потом выплевывал в другой файл. Правда потребление памяти было огого, потому что я что-то не оптимально делал, но работа по сравнению с питоном просто сказочная была.
Аноним 14/03/19 Чтв 15:39:14 136418228
Аноним 14/03/19 Чтв 15:50:44 136418729
Аноним 14/03/19 Чтв 15:53:19 136418930
>>1364175
>>1364180
>>1364182
Ок, спасибо.
Теперь другой вопрос. Что делать, если структура бинарника примерно известна, но размер данных внутри структуры непостоянный?
Например, такая структура: сначала идет текстовый заголовок, затем количество байтов в Int32, которое занимает эта структура, затем сами данные, которые могут включать в себя другие заголовки и т.д., а также имеют непостоянный размер.
Как читать данные из таких структур? Искать в цикле текстовый заголовок, а затем читать указанное количество байт?
Аноним 14/03/19 Чтв 16:31:38 136421631
15524256553340.jpg (65Кб, 604x587)
604x587
Есть ли хороший пошаговый гайд по С?
Хочу пройти и выложить потом на гите.
Аноним 14/03/19 Чтв 16:33:42 136421932
Аноним 14/03/19 Чтв 16:40:04 136422233
'\0' он же NULL он же 0?
Аноним 14/03/19 Чтв 17:03:47 136424134
.png (37Кб, 677x575)
677x575
>>1364157
Вот начал. Правильно прочитал всю строку с пробелами? Теперь нужно научиться как распарсить строку на числа и команды и посчитать то что там написано. Сначала простые арифметические действия +-*/.
Аноним 14/03/19 Чтв 17:15:15 136424735
>>1364241
За детерминированные конечные автоматы пояснить сможешь?
14/03/19 Чтв 17:16:25 136424836
>>1364025
К счастью в Си можно большую часть кода (кроме препроцессора) писать хоть в одну строку. А книжка - это скан кривой, наверное.

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

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

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

>>1364241
Возьми любую книгу про компиляторы. Можешь книгу дракона, можешь какое-нибудь говно попроще типа https://compilers.iecc.com/crenshaw/
14/03/19 Чтв 17:18:18 136425137
>>1364248
buffer = malloc(width ∗ height);
fread(buffer, 1, width ∗ height, fp);
адресуешься buffer[y ∗ width + x]
Пиздец я.
Аноним 14/03/19 Чтв 17:28:47 136426338
Аноним 14/03/19 Чтв 17:32:56 136426839
Ребят, в книжке было задание, в котором просили посчитать сумму двух гармонических рядом. В одном ряду все члены положительные, во втором отрицательные только четные. Сделал тут прогу, работает, но не покидает ощущение, что я забыдлокодил. А, ну и оператором if пользоваться было нельзя. Поясните, быдлокод это чи не? https://pastebin.com/raw/Z8xTAD1Z
Аноним 14/03/19 Чтв 17:33:14 136426940
Аноним 14/03/19 Чтв 18:45:10 136431141
>>1364023
Зачем нужны вообще эти книги по языкам? Серьезно, какой смысл их читать, если без четкого понимания что ты хочешь делать все это бесполезное чтиво, а с четким пониманием тебе скорей всего не по языку придется гору литературы изучать, а по всяким ручкам в ос, api, особенностям железа. Сказать по правде мне кажется большинство программистов осваивали языки постольку поскольку, поэтому и не могут внятно ответить на извечный вопрос со стороны непосвещенных "с чего начать". У человека просто появляется желание что то реализовать он берет чужой кусок кода начинает его ковырять методом тыка, гуглить постепменно начинает вникать как это работает, усваивает минимальные азы, а потом садится и обклажившись документацией по системам сборки, фреймворкам, библиотекам, штурмует мозгом стену до переопухания. Язык постигается попутно попутно, дрочь на них мне лично видится странным, а книги по языкам я вообще не понимаю для кого.
Аноним 14/03/19 Чтв 18:49:24 136431442
>>1364268
> быдлокод это чи не?
Вложеные цыклы же
Аноним 14/03/19 Чтв 18:53:50 136431843
1547166564688.PNG (179Кб, 500x285)
500x285
Аноним 14/03/19 Чтв 19:03:28 136433044
>>1364311
Твоя проблема в том что ты утилитарист. И вообще как можно знать что ты хочешь не зная как и что ты можешь?
Аноним 14/03/19 Чтв 20:45:55 136437845
>>1364330
> как можно знать что ты хочешь не зная как и что ты можешь?
Это вопрос пустопорожний - с чего ты взял что надрочив си по заданиям в книжке и написав хэловорд ты необходимые знания c умениями приобрел? Скажешь тебе (например) - иди вон фильтры для изображений запили (регулируемую яркость, сепию, grayscale) ты так и так их просто так не напишешь, ты пойдешь перебирать тонну всякой хуйни по битмапам и особенгностям работы с ним и еще всякой дополнительной херни связанной с тем куда там это все вывести и через что настройки реализовать. И так происходит постоянно, даже владея языком в совершенстве эта поебень не заканчивается никогда, и чтобы этой ебатней заниматься нужен позитивный стимул в виде идеи и желинии ее реализовать.
Аноним 14/03/19 Чтв 20:48:22 136437946
>>1364378
Ну раз ты скозал что нужон, значит так и есть. Это звучит примерно "чтобы заниматься радиотехникой надо хотеть собрать айфон", бредово короче.
Аноним 14/03/19 Чтв 20:49:17 136438147
>>1364378
из-за перфекционизма не могу взяться за свой пет-проджект, потому что неуверен, что в совершенстве знаю язык, чтобы его написать. Это нормально?
мимо
Аноним 14/03/19 Чтв 21:01:27 136438848
>>1364381
Нет, не нормально, делай его, делай как можно более лучше, нет предела совершенству.
Иначе ты его никогда не начнёшь.
Аноним 14/03/19 Чтв 21:09:02 136439949
>>1364379
> звучит примерно "чтобы заниматься радиотехникой надо хотеть собрать айфон", бредово короче.
То есть ты за язык схватился с расчетом на то что достигнешь когда нибудь такой уровень просветления, который позволит познать дзен и написать свою операционную систему с попов-офис?

Просто сильно резануло ухо про айфоны, как будто блять любая деятельность сводится к тому чтобы запилить йобу и стать успешным. С таким подходом иди в бизнес лучше, программирование не для тебя.
Аноним 14/03/19 Чтв 21:11:20 136440450
> Просто сильно резануло ухо про айфоны, как будто блять любая деятельность сводится к тому чтобы запилить йобу и стать успешным. С таким подходом иди в бизнес лучше, программирование не для тебя.
Вот уж странное высказывание! Чем плоха цель придумать и реализовать йобу? Язык это же инструмент для созидания, а не самоцель.
Аноним 14/03/19 Чтв 21:20:15 136441051
>>1364399
Ты потерял нить разговора. Перечитывай.
Аноним 14/03/19 Чтв 21:26:45 136441852
>>1364404
Ничего плохого, у меня на самом деле тоже есть подобная цель, но она долгосрочная и может быть я ее никогда не реализую, но в любом случае путь к ней усеян маленькими квестами, как связанными ( то есть опыт в создании которых пригодится и продвигает меня ближе к цели) так и не связанными, то есть они конечной цели не дадут ничего но помогают сейчас прокачать скилы и пополнить знания.
Что касается айфонов то я имел в виду идеи вроде "вот я сейчас стану великим погромиздом, напишу какой нибудь телеграм и заживу" диструктивные как по мне
Аноним 14/03/19 Чтв 21:40:13 136443253
Что вообще интересного можно реализовать на С? Для новичка. Всякие хелл ворлд умею.
Аноним 14/03/19 Чтв 21:42:46 136443554
>>1364432
автоматику или либу какую нибудь
Аноним 14/03/19 Чтв 21:48:42 136444255
Аноним 14/03/19 Чтв 22:13:08 136446556
Как сделать, чтобы char выводился как шестнадцатеричное двузначное число, а не как символ?
Аноним 14/03/19 Чтв 22:34:52 136447757
>>1364465
%X, если мне память не изменяет.
Аноним 14/03/19 Чтв 22:35:39 136447858
1364465
printf("%02x\n", ch);
Аноним 14/03/19 Чтв 23:55:53 136451959
>>1364432
Попробуй базу данных. Или если совсем новичок, то напиши свою лог ин процедуру на одном стракте и постепенно попробуй к ней прикрутить больше фич.
Аноним 15/03/19 Птн 03:52:30 136456860
15/03/19 Птн 03:57:52 136456961
>>1364432
Что вообще интересного можно реализовать отверткой? Для новичка. Всякие болты крутить умею.
Аноним 15/03/19 Птн 12:40:44 136466262
>>1364381
Владеешь ли ты русским в совершенстве? Может, не стоило писать этот пост?
Аноним 15/03/19 Птн 13:28:19 136468463
подскажите онлайн компилятор для обучения, совместимый с ansi/
Аноним 15/03/19 Птн 13:48:28 136469264
>>1364662
овладеваешь русским в совершенстве->становишься русским->садишься на бутылку
Нет, спасибо.
Аноним 15/03/19 Птн 14:26:31 136470765
Можете поделиться ссылкой на какой-нибудь сравнительный обзор компиляторов? Плюсы, минусы каждого и т.п.
Аноним 15/03/19 Птн 15:19:16 136472766
>>1364707
Для крестов юзай шlang. Если си для тебя лишь инструмент для вката - юзай что угодно, хоть вижуал студию. Если же собираешься работать с си то есть либо ембедить никсы в весы в пятерочке, либо писать алгоритмы для микроволновок за 30к в месяц, или поддерживать схожее легаси говно из 90-ых то GCC, ибо он написан как раз под стандарты 89/99, на которых то говно и работает.
15/03/19 Птн 16:06:06 136475767
>>1364684
ideone.com (выбираешь просто C), wandbox.org (можешь вписать ключик -ansi даже, если хочешь)

Аноним 15/03/19 Птн 16:16:46 136476268
А есть человеческая книга по си, написанная без ебланских ошибок, с нормальным форматированием и чтобы задачи из неё нормально компилились без ошибок?
Аноним 15/03/19 Птн 16:25:23 136476669
>>1364762
Нет, таких книг не существует.
Аноним 15/03/19 Птн 16:52:56 136477870
>>1364727
Значит GCC, спасибо, с ним и работаю. В целом мне интересно почитать чем они отличаются, не совсем поверхостно, не для новичков, но и не совсем в дебри уходить. Об архитектуре представление имею, с Си знаком, но не в качестве основного языка, а на уровне написать биндинг к СИшной либе.
Аноним 15/03/19 Птн 18:26:13 136483671
>>1364778
Ну а что именно тебя интересует?
Т.к. шланг - поделка изначально выступавшая в роли догоняющего, их мануал написан в стиле чем мы лучше GCC, поэтому если тебя интересует что-то не конкретное, то могу только посоветовать полистать менпейдж.
Я лично юзаю GCC, т.к. на старых машинах он дает большую производительность. Преобразуя код в нижние уровни он пытается его отпимизировать для минимальных затрат ресурсов. Очевидно в этой фиче GCC нет смысла если ты пишешь Си код для 64 битных процев ЩТО тут ты либо долбоеб либо школьник вонаби реверсинженер ловитель пакетов. Плюс многие платформы уже перестают поддерживать GCC (спасибо JVM и новым мультиязыковым компилерам);
15/03/19 Птн 20:21:18 136492172
>>1364762
Прата. Тебе дрочитьполучать эстетическое наслаждение или все же язык учить?
Аноним 15/03/19 Птн 20:30:51 136492573
image.png (8Кб, 306x96)
306x96
>>1364921
Хочется сесть сразу на 2 стула, чтобы с джеком дениелсом и флорентиной не спеша покуривая сигару читать книгу перед камином, получать удовольствие и учить язык за одно.
Сейчас читаю "программирование на си для начинающих" перри-миллер. Вроде книга хорошая, но непонятно почему в книжке main(), а в компиляторах int main(). Учитывая что до этого я только бейсик в школе все совсем сложно.
Аноним 15/03/19 Птн 20:33:27 136492974
>>1364925
На си ты не заработаешь на Джек дениелс и флорентину.
Аноним 15/03/19 Птн 20:44:35 136494075
>>1364925
"int main(void);" - полный прототип (в реальных программах, конечно, делать прототип main не стоит)

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

int в начале - тип возвращаемых функцией данных. В некоторых всяких хуйжективхуйси можно опускать у main(); возвращаемое значение. К самому си это отношения не имеет. Просто виндовские костыли.
Аноним 15/03/19 Птн 20:50:21 136494376
>>1364940
add:
в некоторых говнокомпиляторах (пробабли после 99 стандарта) можно не указывать возвращаемое значение main(), и они по умолчанию проставят тебе int, только реально этим пользоваться -- пиздец какой друной тон, придуманный долбоебами из JVM подобных языков, который потом еще и крестовики переняли. Код с такой хуйней как плевок в лицо будет воспринят всеми нормальными людьми. Что gcc по 99 стандарту, что шланг запрещают опускать возвращаемое значение у main, поэтому просто восприми это как опечатку.
Аноним 15/03/19 Птн 21:13:45 136495077
>>1364940
Это понятно что инт это тип данных.
>Что gcc по 99 стандарту, что шланг запрещают опускать возвращаемое значение у main, поэтому просто восприми это как опечатку.
Ясно понятно, буду иметь ввиду.
15/03/19 Птн 21:16:04 136495178
>>1364943
При чем тут говнокомпиляторы, если это стандартный синтаксис для C89? Поддерживаешь C89 - поддерживаешь неявный инт, указание любых аргументов для функций с пустыми скобками, декларации аргументов перед { а не в () и всю прочую хуйню. Даже если тебе не нравится. Да, это старый синтаксис, писать так не стоит, но знать о нем нужно - еще встречаются исходники, написанные в таком стиле.
Аноним 15/03/19 Птн 21:17:42 136495279
>>1364925
Запомни щенок, блять. Всегда пиши только так:
int main(int argc, const char argv) {...}
Когда будешь вызывать свою программу из шелла или из командной строки, то int - это всегда будет код завершения твоей программы. Примечательно, что командная строка оперирует не логическим состоянием а уровнем ошибки и поэтому в комнадной строке 0 - это правда нормальное завершения процесса а 1 - это ложь ненулевой уровень ошибки и соотвественно всё, что выше единицы - это ложь. Так как на уровень ошибки отводится 1 байт, то уровни ошибки от 0-255. Дальше.
int argc - arguments count это количество аргументов, которые твоя программка получает, когда вызывается из командной строки.
const char
argv - это arguments values значения аргументов, которые передаются при вызове из командной строки. Конст, потому что меня в универе препод учил, что нельзя изменять входные данные программы.
Шелл сам определяет как разбиваются аргументы командной строки. Как правило это пробел, но можно и что-то индусское накостылить.

А ещё запомни щенок. Явное, лучше чем явное. И тебя никто не стукнет по рукам, если ты напишешь лишнего, но запутанного.
Аноним 15/03/19 Птн 21:18:17 136495380
>>1364952
блять, я забыл про звёздочки.
Ну, короче перед argv две звёздочки.
Аноним 15/03/19 Птн 21:19:48 136495481
>>1364952
Да блять. А ещё явное лучше чем неявное
фикс
15/03/19 Птн 21:21:21 136495582
>>1364950
> шланг запрещают опускать возвращаемое значение у main
Как же оно тогда без ворнингов-то конпелируется? https://wandbox.org/permlink/tiXtDxWXuSc2vBWA

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

> const char *argv[]
Нету const в стандарте. Туда можно писать, и пишут.

> препод учил
Это его половые проблемы.
Аноним 15/03/19 Птн 21:53:28 136496783
>>1364952
Ну и нах мне аргументы, если я их не обрабатываю?
Мимо
Аноним 15/03/19 Птн 21:56:39 136496984
>>1364952
>const char argv[]
никакого конста, ибо храниться параметр будет в любом случае все время работы main(), а даже его возможная перезапись никак не отразится на безопасности работы с памятью. конечный юзер сам по себе никуда ничего не вводит, зпускается все чаще всего make/exeс хуйней, а значит сломать твою прогу таким образом обычному юзеру будет тяжело.

>argument values
arguments
vector*;

>>1364955
>9 кланг созданный в эпоху джава детей и вкатывальщиков не могущих осилить даже поинтеры в ОЧЕНЬ СЛОЖНОМ си
Уверен, что ниже 9 версии не будет ни одного без ворнинга
15/03/19 Птн 22:33:30 136499985
>>1364969
> Уверен, что ниже 9 версии не будет ни одного без ворнинга
И в предыдущих не будет ворнингов. И в гцц тоже.
Аноним 15/03/19 Птн 22:40:53 136500386
>>1364999
Только что твой же код на ванде запустил со всеми гсс и всеми клангами кроме 9-ых, и ВЕЗДЕ выдало ворнинг.
-Werror передает привет.
15/03/19 Птн 22:50:01 136501087
>>1365003
Ну ок, ты прав. Но код все равно валидный.
Аноним 15/03/19 Птн 22:59:04 136501488
>>1365010
Никто и не говорит, что невалидный. Дело в стандартах (не только писанных, но и общепринятых) Писать int перед main для си прогера должно быть то же самое, что саму точку входа называть main и никак иначе — бетонный стандарт.
Аноним 15/03/19 Птн 23:12:22 136501989
Как узнать, есть ли в стандартном вводе еще символы, не изменяя его?
15/03/19 Птн 23:13:55 136502090
>>1365014
> должно быть то же самое, что саму точку входа называть main
Периодически обзываю точку входа start, когда пишу под bare metal. Как мне жить-то теперь?

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

>>1365019
Переносимо - никак, но есть ungetc().
Аноним 15/03/19 Птн 23:26:08 136502591
IMG201903152322[...].jpg (37Кб, 1280x1163)
1280x1163
IMG201903152322[...].jpg (27Кб, 1280x183)
1280x183
IMG201903152322[...].jpg (29Кб, 1280x306)
1280x306
>>1365020
Не очень понял что ты имел ввиду, ибо по ссылке открылся аутпут 9 кланга.
Из интереса накатил сейчас на ведро 7-ой кланг и даже без флагов словил ворнинг
16/03/19 Суб 00:04:21 136504492
Аноним 16/03/19 Суб 00:17:02 136504893
На чем пишут компиляторы? Думаю запилить свой один для саморазвития, finite state machines знаю
Аноним 16/03/19 Суб 00:18:00 136505094
IMG201903160015[...].jpg (41Кб, 1280x518)
1280x518
IMG201903160017[...].jpg (21Кб, 1280x352)
1280x352
>>1365044
Значит реально зависит от стандарта.
Я всегда думал что это приколы компиляторов. Позорно ретируюсь.
Аноним 16/03/19 Суб 00:28:25 136505795
Аноним 16/03/19 Суб 01:47:02 136509496
15526237455930.png (611Кб, 2528x1990)
2528x1990
Аноним 16/03/19 Суб 01:49:46 136509797
16/03/19 Суб 02:21:32 136514598
>>1365097
Очередное невзлетит.
Аноним 16/03/19 Суб 08:43:09 136523499
Такой вопрос, а что нужно сделать что бы в функцию можно было ссылку на переменную отправить и получить на ней результат из текущей функции?
[CODE]void plus_1(int i) { i += 1; }

int main(void) {
int i = 1;
plus_1(&i);
printf("%d", i); // => 2
}[/CODE]

Аноним 16/03/19 Суб 08:47:21 1365235100
А хотя нахуй эти сишные приколы можно же i = plus_1(i); обойтись
Аноним 16/03/19 Суб 11:16:52 1365264101
Анон, у тебя есть что-нибудь почитать на тему AMQP, очередей сообщений, брокеров и т.д.? Всё это по большому счёту FIFO-очередь, где данные со всякими вспомогательными заголовками идут поверх транспортного протокола. Правильно?

Репост из ньюфаг-треда в самый адекватный тред.
Аноним 16/03/19 Суб 11:33:50 1365270102
Не нашел в шапке ничего про микроконтроллеры и т.д.

Скачал на udemy пару курсов по С и микроконтроллерам, сижу изучаю, вкатился к вам в тред, у вас тут лампово? Как относитесь Embedded программистам?
Аноним 16/03/19 Суб 12:51:56 1365304103
>>1365270
потому что на борде есть целая доска посвященная этому
Аноним 16/03/19 Суб 13:10:44 1365318104
>>1365304
Да нахуй радач, мне больше нравится байты перекладывать.
Аноним 16/03/19 Суб 13:16:07 1365322105
.png (21Кб, 686x349)
686x349
Запилил консольный калькулятор, который пока понимает только сложение и вычитание. Как вам? Какие будут рекомендации?
https://ideone.com/ZJ8mdK

Следующий щаг - добавить понимание умножения и деления с их повышенным приоритетом. Как лучше всего это сделать?
Аноним 16/03/19 Суб 13:21:22 1365329106
>>1365322
Ну сначала ищи операции умножения деления, делай их пока ни одной такой операции не останется, после этого у тебя останется привычная строка со сложением вычитанием
Аноним 16/03/19 Суб 13:38:20 1365347107
изображение.png (59Кб, 1366x728)
1366x728
>>1365322
Есть такая штука как isdigit().
И выглядит сильно лучше моего парсера одного файла "Конфига"


Алсо, есть какие IDE получше Code::Blocks? CLion адово тормозной, как и Студии.
Аноним 16/03/19 Суб 13:42:04 1365349108
>>1365347
>IDE получше Code::Blocks
эмулятор термиала с башом.
Аноним 16/03/19 Суб 13:45:08 1365353109
>>1365349
Но это не IDE. И вечно наяривать gcc дохуя файлов -std=99 -Werror -o prog.exe несколько заебывает. Не мейкфайлы и шелл-скрипты же делать ради этого.
Аноним 16/03/19 Суб 13:46:14 1365355110
>>1365353
>Не мейкфайлы и шелл-скрипты же делать ради этого
а что тогда?
Аноним 16/03/19 Суб 13:48:22 1365356111
>>1365355
Я ж виндоребенок. Мне бы нажать кнопочку "собрать" чтобы, собственно, собрать.
Аноним 16/03/19 Суб 14:07:57 1365367112
>>1365329
Тогда надо будет либо загонять весь ввод в строку и работать уже с ней - сразу появляется ограничение на длину строки, либо делать длинные стеки под числа и операторы - тоже появляется ограничение на длину стека. Хочется сделать без ограничений.
Аноним 16/03/19 Суб 14:11:30 1365368113
>>1365347
>isdigit()
Скорее всего эта функция не пригодится, по крайней мере, пока.
Аноним 16/03/19 Суб 14:24:35 1365372114
>>1365367
Ограничений не будет, если ты используешь динамическую память. Ну не сожрет же твой калькулятор больше ста метров, ну.
Аноним 16/03/19 Суб 14:24:53 1365373115
>>1365356
Тогда зачем тебе си? И да, слабо умножение самому написать, а не просто return f*x?
Аноним 16/03/19 Суб 14:28:34 1365377116
>>1365373
Ну епт, умножение железно поддерживается даже каким-нибудь древним AVR8535. А Си просто нравится. Как и Перл. А вот для Форта я туповат, увы
Аноним 16/03/19 Суб 14:29:14 1365378117
>>1365367
Непонятная ебля у тебя, ну не мое дело, если не хочешь каких-то ограничений стеков и т.д., делай все проще.

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

1) Читаешь первое число
2) Читаешь знак
3) Читаешь второе число
4) Читаешь второй знак
4.1) Если он плюс или минус, то совершаешь операцию над первым и вторым числом
4.2) Если умножить или разделить, то кладешь в буфер первое число плюс знак
4.2.1) Читаешь следующее число
4.2.2) Совершаешь действие
5) В итоге у тебя в буфере первое число и знак, и результат вычисления - второе число, а это пункт 3 - GOTO 3)
Аноним 16/03/19 Суб 14:35:28 1365382118
>>1365378
Если следующий знак — открывающая скобка, идёшь назад до первой открывающейся, и считаешь все
Аноним 16/03/19 Суб 14:37:31 1365384119
>>1365378
Проебался в 5 пункте, если вышел с 4.1 то GOTO пункт 2, если с 4.2.2 то GOTO 4.

>>1365382
Скобок у него вообще нет, это видимо у него следующий пункт.
Аноним 16/03/19 Суб 14:45:18 1365388120
>>1365372
>динамическую память
Блин, я еще не знаю что это. Опять учить. Хочется дела делать.

>>1365378
Хм, занятно. Так наверное и сделаю. Спасибо.
Аноним 16/03/19 Суб 15:11:07 1365396121
>>1365388
>Опять учить. Хочется дела делать.
Сфотай свою детскую жопу и выложи на гит
Аноним 16/03/19 Суб 15:53:14 1365420122
>>1365322
Запили ещё парсинг скобок, возведение в степень и возможность задания собственных констант каких-нибудь, а то какую-то хуйню для школьников делаешь.
Аноним 16/03/19 Суб 15:55:37 1365424123
>>1365378
>>1365382
Сказали бы сразу ему обратную польскую запись использовать.
Аноним 16/03/19 Суб 15:57:29 1365425124
>>1365424
Ну серьезно, если челик спрашивает как сделать умножение то у него проблемы.
Аноним 16/03/19 Суб 16:43:35 1365458125
>>1363231
Это visual studio 2005? Прям 1 в 1
Аноним 16/03/19 Суб 16:56:30 1365461126
>>1365388
Виртуалку поставь и надрачивай все с нуля. Я когда сам только начинал, пытался умножение сделать через байты. Закономерно проебался, поэтому не советую пытаться. Сделай просто исключения на умножение чисел, типа x>1, x<1 && x>0, x<0, x<-1, x>-1 && x<0 Если решишь ебаться с байтами, для начала сделай только int.
Аноним 16/03/19 Суб 16:58:28 1365464127
>>1365461
Через биты
самофикс*
Аноним 16/03/19 Суб 17:12:13 1365471128
Пните, что читать, если надо считать из текстовика данные и распихать их по структурам, в том числе и вложенным. Проблемы с последним - на третий уровень моих мозгов уже не хватает.
Аноним 16/03/19 Суб 17:32:58 1365482129
Безымянный.png (10Кб, 771x754)
771x754
>>1365322
> Как лучше всего это сделать?
Рекурсивно разбиваешь выражение, сходя из приоритета операций, от наименьшего к наибольшему. Составляешь дерево: в предка кладешь операцию, в потомков (ты используешь лишь бинарные операции, потому их всегда будет 2) -- разбитые выражения.
Продолжаешь опускаться вниз до тех пор, пока у тебя не останутся лишь числа (если выражение некорректно, то останется некоторая мусорная часть).
Потом проходишься по дереву снизувверх и склеиваешь числа по операции-родителю.
В этот метод легко добавляется обход скобочек (внешние скобочки просто отбрасываются), обработка унарных операций (в случае унарной операции родитель будет иметь одного потомка) и прочее.

Можешь, кстати, написать не калькулятор, а символьное дифференцирование. Оно делается в точности так же, только обход снизу вверх чуть усложнится.
Аноним 16/03/19 Суб 18:35:50 1365522130
>>1365322
Ее величество, Рекурсия беспощадно разбирает подобные задачки. SICP читай.
Аноним 16/03/19 Суб 18:37:51 1365524131
>>1365522
> SICP читай
sicp это мем
Аноним 16/03/19 Суб 18:39:02 1365526132
Я не понимаю как работает пирамидальная сортировка. Почитал, и все равно не пойму. Может кто нибудь на пальцах разъяснит?
Аноним 16/03/19 Суб 20:37:34 1365569133
>>1365526
Ключевая операция - соединение двух отсортированных последовательностей в одну отсортированную последовательность. Например, есть у тебя 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 и т.д. Степень двойки или нет - не принципиально, просто местами будут по одному, а не по два попадаться.
Аноним 16/03/19 Суб 20:47:06 1365576134
>>1365569
Я не он, но ты хуево объяснил без обид
>Одновременно двигаешься по обеим
После этого перестал читать, невозможно что-то делать одновременно.

Тот кому ты объясняешь, ты это зря ему объясняешь, в гугле стоит ввести heap sort, heap sort для чайников, там будет 1000000 объяснений с разных точек, видео, презентации, иллюстрации, а ты надеешься ему объяснить лучше? Зря время теряешь.
Аноним 16/03/19 Суб 20:51:12 1365581135
>>1365576
Поправлюсь - одновременно в одном потоке.
Аноним 16/03/19 Суб 20:57:20 1365583136
>>1365522
> SICP
Офигеть, вот это забористая книга. Еще есть такие?
Аноним 16/03/19 Суб 20:59:30 1365585137
Аноним 16/03/19 Суб 21:02:59 1365586138
image.png (133Кб, 1200x1202)
1200x1202
>>1365585
когда ж вы уже людьми станете
Аноним 16/03/19 Суб 21:04:57 1365587139
>>1365586
Как только добавят возможность его закрыть.
Аноним 16/03/19 Суб 21:09:45 1365591140
>>1365586
Я не учился в музыкалке на пианиста. Да и якобы скорость работы в нем не всегда нужна.
Аноним 16/03/19 Суб 21:44:59 1365612141
>>1362799 (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;
Аноним 16/03/19 Суб 21:45:54 1365613142
>>1365612
фикс
char abu[10];
char huy[30];
Аноним 16/03/19 Суб 21:50:23 1365615143
>>1365591
соглы. Вим не столько для написания кода, сколько для моментального форматирования текста. Как sed только немного круче. Он в отличие от sed интерактивный. Пожалуй, на этом отличия заканчиваются.
Аноним 16/03/19 Суб 21:50:56 1365617144
100 stealth.webm (285Кб, 266x426, 00:00:09)
266x426
>>1365591
Vim с каким-нибудь ClangCompleter и парой десятков плагинов очень классная штука, если у тебя проект не на десятки тысяч строк и полновесная IDE особо не нужна. Просто берёшь и пишешь код.
Аноним 16/03/19 Суб 22:11:07 1365636145
>>1365524
SICP это мем только у дурачков. Когда ты так говоришь, ты выставляешь себя дегенератом
Аноним 16/03/19 Суб 22:13:23 1365638146
>>1365612
Пусть твоя прога хранит как в .json. Популярно и удобно.
Аноним 16/03/19 Суб 22:56:35 1365679147
>>1365636

SICP это книжка для андерградов-первокурсников по основам программирования, ничего больше.
Аноним 16/03/19 Суб 23:24:12 1365713148
>>1365679
Так ее и посоветовали человеку, который не знает, как сделать умножение в программе, хуле ты доебался.
16/03/19 Суб 23:26:06 1365716149
>>1365612
Просто читай одну запись за другой с помощью fread. Так работает (работал) DBF. Если захочешь искать быстрее, можешь запилить индексы, например. В простейшем случае ты можешь записать индексы записей, отсортированных по имени, в отдельный файл, а потом двоичным поиском читать индексы и соответствующие им записи.
Аноним 17/03/19 Вск 05:21:03 1365848150
>>1365612
>Пишу базу данных на си
Ты обосрался, используй dBase.
Аноним 17/03/19 Вск 05:58:56 1365852151
>>1365322
Сори, анон, но как-то костыльно написано + логику всю переписывать, если добавлять приоритеты операций, который возникают при использовани скобок, операторов умножения/деления и т.д. Советую почитать про запись выражений в польской нотации. Будет гораздо проще сделать нормальный калькулятор. Строчек в 200, думаю, влезет
Аноним 17/03/19 Вск 05:59:35 1365853152
Аноним 17/03/19 Вск 07:48:43 1365862153
А можнго ли в си создать экземпляр функции которая являетсчя ссылкой на другую функцию с двумя переданными аргументами? Ну типа как в жабаскрипте:

function foo (int, str) { };
var f1 = foo.bind(null, 1, ".");
Аноним 17/03/19 Вск 08:46:47 1365871154
>>1365862
Функция это код. Нельзя создавать экземпляр кода.
Аноним 17/03/19 Вск 09:02:21 1365875155
Аноним 17/03/19 Вск 09:50:43 1365881156
5874764578.png (58Кб, 607x648)
607x648
>>1365871
> «Поинтерами баловать можно, а баловать кодом нельзя»© The C Language
>>1365875
Ух как медленно грузится

Я пытаюсь что-то типа такого https://paste.ofcode.org/78985hzGxnFE25Hhgq9z8M
Естественно код не рабочий
Аноним 17/03/19 Вск 09:52:40 1365882157
>>1365862
В плюсах можно.
В си можно делать через указатель на функцию, да и пожалуй всё, да и то это не совсем то, что ты хочешь.
Аноним 17/03/19 Вск 09:56:40 1365883158
>>1365882
Ну целевой проект просто на Си, не буду же я весь код переписывать. Так то конечно если б с чистого листа, на плюсах делал бы.
Аноним 17/03/19 Вск 10:03:14 1365887159
>>1365883
Если хочешь, можешь сделать через макрос типо.
#define f() foo(2, 4)
Сможешь писать просто f();
Единственное что это всего лишь макрос, который препроцессор развернет перед компиляцией, но это визуально ближе к тому, что ты хочешь хотя бы.
Аноним 17/03/19 Вск 10:05:56 1365888160
>>1365887
О, спасибо. Мне в принципе и нужно для того чтоб в 10 местах одно и то же не исправлять если что, а как там препроцессор подготавливает это уже похуй.
Аноним 17/03/19 Вск 12:28:36 1365975161
65764375.png (51Кб, 663x304)
663x304
А почему вот так такое происходит?
Программа компилируется но естественно падает при запуске.
Аноним 17/03/19 Вск 12:43:04 1365982162
>>1365852
Читал про нее - не очень понравилась что нужно дофига конвертировать выражение используя для этого кучу лишних длинных массивов. А тут хоть может костыльно, но всего два коротеньких стека под операторы и под числа, длина которых равна количеству разных приоритетов +1, и всего лишь один проход по выражению.

Аноним 17/03/19 Вск 12:50:41 1365987163
.png (21Кб, 686x350)
686x350
Накостылял в калькуляторе умножение с делением.
https://ideone.com/K0zNua
Делал примерно как посоветовали >>1365378, логика программы при этом не пострадала, только стеки увеличились на одну ячейку, появилась рабочая область в виде двух смежных ячеек в этих стеках, которую можно перемещать по стеку и добавилась проверка приоритета операторов.
Аноним 17/03/19 Вск 12:56:31 1365988164
>>1365987
Я не эксперт, но 150 строчек многовато
Аноним 17/03/19 Вск 13:25:31 1365997165
>>1365347
>Алсо, есть какие IDE получше Code::Blocks? CLion адово тормозной, как и Студии.
Qt Creator.
Аноним 17/03/19 Вск 13:38:55 1366000166
>>1365522
>>1365482
Скобки, наверное на рекурсии буду делать.
Аноним 17/03/19 Вск 13:43:02 1366001167
>>1365997
Не менее тормозным будет.
Аноним 17/03/19 Вск 13:52:55 1366004168
>>1365322
Рекурсивный спуск жи.
Аноним 17/03/19 Вск 14:04:18 1366010169
Хм, а обработка вложенных скобок практически всегда через рекурсию выполняется, выходит?
Мимо
Аноним 17/03/19 Вск 14:05:42 1366012170
Аноним 17/03/19 Вск 15:02:52 1366037171
>>1366012
Вот этого удвою единственный ценитель среди здешних говноедов.
Аноним 17/03/19 Вск 15:28:31 1366047172
>>1366001
Уверен? Несколько лет его юзаю, нагрузка на память и процессор в разы меньше, чем у CLion.
Аноним 17/03/19 Вск 17:01:12 1366080173
76463763465.png (74Кб, 991x783)
991x783
Сейчас ведь IDE не модно, сейчас модно расширеные редакторы типа сублейм, текстмейт, VS Code, Atom и так далее.
Аноним 17/03/19 Вск 17:08:10 1366085174
>>1366080
>поносный бред зумера
Аноним 17/03/19 Вск 17:08:57 1366086175
>>1366080
Я емаксом пользуюсь, мне норм
Аноним 17/03/19 Вск 17:13:38 1366088176
Аноним 17/03/19 Вск 17:20:35 1366093177
>>1366088
Хм, а я старые Студии и не рассматривал. А в 2008 С++98 ака Си с классами, по сути.
Аноним 17/03/19 Вск 17:25:12 1366094178
>>1366086
Так vi/emacs из той же оперы, только без гуя и с режимами.
Аноним 17/03/19 Вск 18:46:46 1366131179
Если в функции, которая возвращает double, что-то пошло не так, как это событие передать наружу?
Аноним 17/03/19 Вск 18:53:36 1366139180
>>1366131
Ручками установить errno, и если он выставлен - обрабатывать возвращаемое как целочисленные коды ошибок. Ну или завести свою глобальную переменную под это дело.
Аноним 17/03/19 Вск 20:46:35 1366215181
>>1366131
>header
define PROIZOSHLA_ZALUPA 1488

>func.c
if (zalupa cond)
ErrorHandler(PROIZOSHLA_ZALUPA);

>Error_handler.c
if (func(x) = 1488)
puts("произошла залупа пиздец короче чтото не так");
Аноним 17/03/19 Вск 20:55:55 1366220182
>>1366215
void errorhandler(int error) {switch (error)
case 1488:
puts("zalupa occured error code 1488");
break
;}
Аноним 17/03/19 Вск 20:56:24 1366221183
1509722339374.png (9Кб, 735x249)
735x249
>>1366093
Выбор языка в настройках проекта.
Аноним 17/03/19 Вск 20:57:41 1366222184
>>1366215
double f(double x)
{ return x + 8.;}

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

Охуенное решение.
Аноним 17/03/19 Вск 21:43:33 1366235185
>>1366221
Он имеет в виду что там компилятор старый, но ему ничто не мешает прикрутить туда компилятор от новой студии.
Аноним 17/03/19 Вск 21:58:07 1366250186
17/03/19 Вск 22:05:13 1366254187
>>1365975
Тебе же написали - неверный указатель. Сделай в load_file аргумент или указателем на массив фиксированного размера, или выкинь фиксированный размер из LIST нахуй и принимай указатель на указатель. И unsigned тоже выкинь. https://ideone.com/3aWjFh

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

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

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

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

>>1366235
И енжой проблемы с отладкой и инкрементальной компиляцией. Но в основном с отладкой.
Аноним 17/03/19 Вск 22:33:57 1366262188
>>1366250
Через настройки, лол.
Аноним 17/03/19 Вск 22:38:57 1366263189
>>1366254
С отладкой дело решается так же как и с компилятором, а проблема с инкрементальной компиляцией вообще откуда должна взяться?

Алсо для этого уже придумали мейкфайлы чтобы ничего в настройках ide не менять и удобно компилить из под терминала.
17/03/19 Вск 22:42:50 1366265190
>>1366263
> а проблема с инкрементальной компиляцией вообще откуда должна взяться?
Прошу прощения. Я имел в виду Edit&Continue.
Аноним 17/03/19 Вск 22:47:10 1366269191
>>1366254
> Сделай в load_file аргумент или указателем на массив фиксированного размера, или выкинь фиксированный размер из LIST нахуй и принимай указатель на указатель.
Это какой то пиздец пиздеца. Я вначале отправлял значение (char *)LIST[num] а потом и вообще нахуй перенес массив по месту использования а в теле порограммы оставил только чиселки, с ними меньше проблем.
> Ты, наверное, из мейнтейнеров leftpad.js? Или тебе просто нравится дрочить на инструменты вместо решения задач?
Нет, я как раз давненько в веб фронтенд не лазил хотя левоотступ это вроде из ноды ну да хуй с ним уже и забыл что IDE и любимый редактор друг друга не исключают. Звиняюсь.
Аноним 17/03/19 Вск 22:51:17 1366270192
>>1366080
Это что за редактор такой?
Аноним 17/03/19 Вск 22:52:43 1366271193
>>1366263
>удобно компилить из под терминала
Ну не знаю, что удобнее. Альт-табаться до окна терминала, жать вверх и энтер. Или же просто ctrl+f5.
Мимо
Аноним 17/03/19 Вск 22:57:46 1366278194
>>1366270
Явно какое-то браузерное говно. Атом?

>>1366271
Зависит от подхода к программированию. Если ты компилируешь при каждом изменении (F5-driven development), тогда конечно в консольку ходить не очень удобно. Если ты пишешь относительно большие куски, то консоль норм, и даже удобнее. А так, сейчас любой редактор можно научить компилятор запускать по хоткею.
Аноним 17/03/19 Вск 22:59:54 1366279195
>>1366271
В иде/редакторах обычно есть интеграция терминала.
Тем более это дело привычки, я много чего делаю в терминале, но меня наверное можно назвать красноглазиком, т.к. я на работе пишу драйвер под линукс.
Аноним 17/03/19 Вск 23:00:38 1366280196
>>1366278
Не знаю, не пользовался им, выглядит красиво, работает скорее всего так себе.
Думаю вот с вскода попробовать перекатиться на саблайм.
Аноним 17/03/19 Вск 23:01:22 1366281197
>>1366271
>не знаю, что удобнее
while :; do gcc "FILE" 2&>logfile; sleep 2; done
watch cat logfile
И отвешиваешь терминал на второй монитор, чтобы смотреть, какие ошибки выплёвывает компилятор.
Какже ИДЕдети сосут. Я просто тащусь.
Аноним 17/03/19 Вск 23:02:26 1366283198
>>1366278
>F5-driven development
Да, оно, идеальное название. Написал строк десять, собрал, повторяю, когда решил проверить - запускаю и молюсь на распиханные в первой версии кода принты.
Аноним 17/03/19 Вск 23:02:59 1366285199
>>1366281
>while :; do gcc "FILE" 2&>logfile; sleep 2; done
while :; do gcc "FILE" 2&>logfile; sleep 2; done &
да, в конце ещё пизже будет поставить амперсанд, чтобы отправить цикл в фон.
Аноним 17/03/19 Вск 23:04:48 1366286200
>>1366281
Ну от подхода зависит. Я не постоянно пишу, а набегами. Между ними подсознание придумывает, как решить конкретную проблему. Ну и у меня не никсы.
Аноним 18/03/19 Пнд 05:14:33 1366355201
Как это работает?
char *lineptr[MAXLINES];
Я правильно понимаю, что это объявляет массив из maxlines элементов, каждый из которых является указателем на строку?
strcpy(p, line);
lineptr[nlines++] = p;

Каким образом работает это? Ведь длина строки не указана, вдруг там не хватит места для копирования p?
Аноним 18/03/19 Пнд 11:11:19 1366417202
>>1366355
p не имеет никакого отношения к твоему массиву с УКАЗАТЕЛЯМИ на строки. Где-то в памяти создаешь строку p, копируешь в нее line. А за тем просто в свой массив копируешь указатель (адрес начала строки p) p.
Т.е. строки хранятся отдельно, а массив просто коллекционирует их адреса/указатели.
Аноним 18/03/19 Пнд 11:22:22 1366421203
>>1366417
Спасибо, теперь все понятно
Аноним 18/03/19 Пнд 12:18:47 1366432204
А есть что-нибудь из переведенной литературы с учетом новейших изменений?
Аноним 18/03/19 Пнд 12:19:30 1366435205
>>1362220
>>1362244
Господи, почему же Бабаян с Пентковским отдались Интелу. Если бы они не ушли к ним на западе все еще не было бы микропроцессоров, способных хотя бы в 1 MOPS. А мы были бы монополистами в мире микропроцессоров, создавали бы самые технологичные и быстрые решения, доход от продажи которых составлял бы триллионы долларов в год, ведь выхода у других стран не было бы - Интел сам не может, а остальные вообще полные бомжары. И только наш Эльбрус пробивает сверхзвуковой барьер в микропроцессорных вычислениях. Мы стали бы властелинами мира, держали в руках всю компьютерную индустрию, не продай они наши технологии врагу. Как так можно было поступить. Ублюдки.
Аноним 18/03/19 Пнд 12:21:41 1366436206
>>1366435
Прохладная история.
Аноним 18/03/19 Пнд 12:25:28 1366440207
>>1366435
>не продай они наши технологии врагу. Как так можно было поступить. Ублюдки.
Все правильно сделали, малаца, люблю их.
Аноним 18/03/19 Пнд 12:28:17 1366444208
>>1366435
Опять психи из дур.дома сбежали. Как же вы сюда попадаете-то?
Аноним 18/03/19 Пнд 12:32:23 1366448209
.png (22Кб, 683x350)
683x350
>>1365987
Добавил скобочки на рекурсии.
https://ideone.com/rDppF4
Теперь нужно думать как парсить многосимвольные операторы, типа синусов и тангенсов.
Аноним 18/03/19 Пнд 12:33:39 1366450210
>>1366444
>эта весна и обострившиеся шизики повсюду
>Как же вы сюда попадаете-то?
Такая ты наивная няша :3
Аноним 18/03/19 Пнд 12:34:47 1366452211
>>1366436
Ничего прохладного. Пентковский создал набор инструкций SSE (на основе разработок микропроцессора Эль-90, который в 1990м году стал бы быстрейшим в мире, если бы пошел в серийное производство (развал СССР сделал эти планы неосуществимыми). Интел догнал бы его по производительности только через 10 лет (на самом деле не догнал бы - Пентковского-то у них не было бы, выпускайся на родине Эль-90). SSE до сих пор используется в новейших процессорах Интел) для Pentium 3, который увеличил производительность 3ки в 4 раза.
А Бабаян пришел в Интел в 2004 году. Угадай, что Интел выпустит спустя 2 года с его прихода? Core 2, который станет отцом для твоего любимого Core i7, на который ты дрочишь. И эти микропроцессоры просто рвут все остальные в производительности. Очевидно, что в них использовались наработки Бабаяна для процессора Эль-2000.
Так что когда ты теперь восхищаешься великолепными сверхбыстрыми процессорами Интел, тебе стоит вспомнить, кто стоял у их истоков. Советские ученые. Без их работ мир бы сейчас все еще радовался бы 0.5 MIPS'ам и 256 Кб оперативной памяти.
Аноним 18/03/19 Пнд 12:37:14 1366454212
>>1366452
Хуль теперь плакаться, радуйся, что из-за совместной разработки выиграл лично ты. Аля наивная фантастика 60-х, про совместное покорение космоса.
Аноним 18/03/19 Пнд 12:38:43 1366455213
>>1366452
То есть все правильно сделали - кинули пидорашек вроде тебя, гнида через хуй и уехали к белым людям.
Ну хоть кто-то не дебил.
Аноним 18/03/19 Пнд 12:41:29 1366456214
>>1366435
Не могу понять толсто это или тонко.

Алсо: вот допустим у меня объявлено 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);

объявленный публичным, верно?
Аноним 18/03/19 Пнд 12:57:08 1366465215
>>1366452
А тотального отставания в электронике у СССР как бы и не было, ага. Во всем виновато копирование System/360, чоуж. И хуевое руководство.
Аноним 18/03/19 Пнд 13:18:09 1366475216
>>1366452
>если бы пошел в серийное производство
Но ты же понимаешь, что он никогда бы не пошел в серийное производство?
Я много читал про все это не далече, чем полгода назад. Про компьютеры из СССР. Из прочитанного я понял, что все компьютерные технологии Совка - это копипиздинг западной техники, микросхем, микропроцессоров, технологий производства жестких дисков, мониторов и прочего прочего. И единственной реально революционной (все остальное - тупое говно тупого говна, которое появлялось в совке, когда на западе такие решения уже лет 10 как устарели) разработкой был этот пресловутый Эльбрус. Кстати, его концепт тоже спизжен - с машин компании Берроуз, которые не использовали ассемблера в процессорных командах, вместо него был высокий АЛГОЛ (его наши тоже спиздили, назвав "язык высокого уровня Эль-76"). Но концепт концептом, язык языком, спиздили и спиздили, а итог должен был превосходить суперкомпьютеры Берроуз да и вообще компьютеры всего мира.
Но. Эльбрус 1 был сдан в 1980 году и никогда не пошел в серию. При этом он был слабее батьки-Берроуза, с которого вдохновлялся. Фэйл.
Срочно начали пилить Эльбрус 2. Вот он как бы уже должен был быть гораздо сильнее и лучше предыдущего (хотя все равно безнадежно сосал у какого-нибудь Крэя). Но и он не пошел в серию. А почему? Машина-то получилось, как принято общественностью, неплохая. А потому что НЕТ БЛЯДЬ У СОВКА ЭЛЕМЕНТАРНОЙ БАЗЫ. Не мог он, как и сейчас не может, массово производить суперкомпьютеры и/или микропроцессоры. Потому что нет такой школы и промышленной технологии полупроводников, как у США (сейчас кто-нибудь кукарекнет, что многое из разработки теории и промышленности полупроводников разработали как раз-таки в СССР "Ряяя, ты что, не слышал про Алфероваааа, ряя", но я не знаю конкретно за Алферова, знаю только, что с проводниками в СССР и России полный пиздец - т.е., даже если наши какие-то технологии первыми разработали, воспользоваться ими они не смогли). Не умели и не умеют в транзисторы, интегральные схемы, микропроцессоры. Поэтому и выпустили Эльбрус 2 мелким тиражом. В количестве БЛЯТЬ 3 ШТУК. Все остальные Эльбрусы 2 - это так называемые "Эльбрус-1к2", т.е. перенос БЭСМ-6 на элементную базу Эльбруса 2. Рассказывать, что это за говно, думаю, не нужно. Берут устаревшую на 20 с лишним лет машину и натягивают на нее (или ее на) концепт Эльбрусовской системы с языком высокого уровня в процессорных командах. На выходе получается дикое, монструозное, страшное, нестабильное тупое говно, отстающее от западных машин как минимум на поколение. А ведь это "революционная разработка".
Нету блять элементарной базы. Поэтому не смогли бы они выпускать эти "Эль-90". Были они на бумаге, вполне возможно, что помогло людям, участвовавшим в их разработке, вкатиться в Интел, Sun, Моторолу и AMD. Но производить такое промышленность СССР никогда бы не смогла. Нет технической обеспеченности.
Так что да - лучшее, что могло случиться с Эльбрусом - это переход его команды в Интел. С отечественной элементарной и технической базой о мировом господстве в микропроцессорах можно забыть и даже на заикаться, а Интел успешно все вывел и выдал в массы.
Аноним 18/03/19 Пнд 13:26:51 1366477217
>>1366475
>Не умели и не умеют в транзисторы, интегральные схемы, микропроцессоры.
а на чем тогда военная электроника работает? она все-таки у совка была пусть и не особо крутая да и сейчас что-то делают
Аноним 18/03/19 Пнд 13:29:14 1366478218
>>1366477
Ты охуеешь, но военные до сих пор от ламп не отказались.
Аноним 18/03/19 Пнд 13:30:10 1366479219
>>1366478
скажем так я не поверю
самонаводящаяся ракета на лампах это дизельпанк какой-то
Аноним 18/03/19 Пнд 13:30:59 1366480220
>>1366452
>>1366475
>этот разговаривающий сам с собой обострившийся шизик
Весна пришла.
Аноним 18/03/19 Пнд 13:31:23 1366481221
Аноним 18/03/19 Пнд 13:34:12 1366482222
>>1366477
Ну, да. По мелочевки пилят какую-то хуету мелкими партиями. Но это предел.
Аноним 18/03/19 Пнд 13:41:12 1366485223
Аноним 18/03/19 Пнд 15:36:17 1366537224
>>1366477
Да пиздежь это всё. Я будучи школьником годами занимался радиотехникой, паял всё, начиная с ламповых усилков со здоровенными трансформаторами и заканчивая схемами на логических элементах (микрухи с ноготь) и ни разу не видел ни одной иностранной детали. Вся элементная база была русская. Отставание пошло только с компьютеров (микропроцессоров).
Аноним 18/03/19 Пнд 16:00:29 1366563225
>>1366537
Зачем ты что-то объясняешь залетным детям из hw, которые с трудом себе-то объяснят что такое ток?
Аноним 18/03/19 Пнд 16:25:42 1366586226
>>1366537
Там не деталь, а сами элементы были иностранными. Можно погуглить, у всех отечественных диодов, микросхем и прочего были зарубежные прототипы. Где-то был сайт, где перечислялись с фотками советские копии и иностранные оригиналы.
Аноним 18/03/19 Пнд 16:36:29 1366603227
>>1366537
Мда, то-то было так много брака среди телевизоров и радиомагнитофонов, а электронных устройств сложнее "Электроники ИМ-02" в гражданском потребление просто не существовало.
Видимо, только твои говноподелки пилить эти микроэлементы и подходили.
Аноним 18/03/19 Пнд 16:40:41 1366606228
>>1366586
> сами элементы были иностранными. Можно погуглить, у всех отечественных диодов, микросхем и прочего были зарубежные прототипы.
Ну все охуеть теперь в Америке колёса круглые, давай нахуй на квадратных езди
Аноним 18/03/19 Пнд 17:08:55 1366621229
>>1366606
Пошли сверх-маневры.
Продолжаем зоонаблюдение.
Аноним 18/03/19 Пнд 17:28:39 1366636230
Нахуй вы в треде про Сишечку сретесь? Сходите скриптомакак повеселите.
Аноним 18/03/19 Пнд 17:54:27 1366655231
>>1366586
Это называется "аналог". Аналоги есть не только между отечественными и зарубежными деталями, но и внутри отечественных например. Дело в том, что схемотехника примерно унифицирована. Изобретать детали с нестандартными параметрами не круто.
Аноним 18/03/19 Пнд 18:02:17 1366658232
>>1366655
Есть разные архитектуры. Тот же интел и арм.
Аноним 18/03/19 Пнд 18:08:04 1366660233
>>1366456
В си нет публичных/приватных полей, можешь обращаться так, как хочешь, если есть специальная функция геттер лучше обращайся через неёопять же не обязательно, для поддержания эстетики между либой и твоим кодом.
Аноним 18/03/19 Пнд 19:12:38 1366679234
>>1366432
Ну прата же. В C17 ничего особо интересного нет.

>>1366660
Полей нет, но если вот так struct _Mix_Music лежит в .c файле внутри SDL или в приватном (не распространяемом) .h, а typedef к ней в публичном .h, то единственный легальный способ достучаться до полей - через геттеры. Это классический способ инкапсуляции в Си (который, кстати, не осилили в крестах, где методы должны торчать в определении класса в .h вместе со всеми остальными кишками).
Аноним 18/03/19 Пнд 19:28:36 1366688235
>>1366636
Дело говоришь. При чем тут Сишка? Как сейчас помню, поднимаю в 88-м на советском компьютере javascript...
Аноним 18/03/19 Пнд 19:38:26 1366695236
>>1362799 (OP)
Всем привет, я новичок.
Кто-нибудь может сделать так, как гифке, написав код на С?
И так же в среде разработки покадрово сохранить и сделать один файл .gif на выходе, а потом показать код?
Хочу выбрать язык, на котором буду делать такие вещи, а возможности языков не знаю.
Помогите, пожалуйста.
http://www.cyberforum.ru/3d-modeling/thread2421226.html
Аноним 18/03/19 Пнд 19:49:38 1366702237
>>1366688
Не сомнено, про Сишку ни слова. Но писькомерство и а вот если бы
Аноним 18/03/19 Пнд 19:49:45 1366703238
>>1366695
тащи гифку сюда, cyberforum сломался. Я не помощник, за других говорю
Аноним 18/03/19 Пнд 20:08:01 1366712239
1212.gif (124Кб, 300x300)
300x300
Аноним 18/03/19 Пнд 20:23:20 1366720240
>>1366695
Ну берешь либу для работы с гифками, рендеришь изображение во фреймбуфер, пишешь кадр в гифджиф, рендеришь следующий кадр, пишешь. От языка тут абсолютно ничего не зависит.
Аноним 18/03/19 Пнд 21:31:16 1366752241
>>1366452
Как мне кажется, всё-таки большая часть производительности из-за out-of-order execution, а не SSE. Да, оно безусловно важно, но без OOO ты бы до сих в асме сидел и руками вычислял трупуты и латенси. Особенно в 90-х, когда компиляторы разве что константы сфолдить могли.

RIP Itanium
Аноним 18/03/19 Пнд 22:07:09 1366763242
А какого хуя у меня программа сегфолтится?

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)


Когда тоже самое было через обычные переменные все ОК
Аноним 18/03/19 Пнд 22:24:06 1366773243
Аноним 18/03/19 Пнд 22:26:53 1366776244
>>1366763
Ну нам-то откуда знать? Проблема где-то еще. Видимо, у тебя img инвалидный, ты структуру вообще инициализируешь?
Аноним 18/03/19 Пнд 22:30:08 1366777245
>>1366752
>>1366475
>>1366452
Что-то мне кажется вы этого долбаеба Бабаяна ну хотя бы слегкааааа так переоцениваете. Ну хотя бы самую малость. За Пентковского не скажу, так как нихуя о нем не знаю, не знаю на кой ляд ему этот SSE сдался, но раз хотел разработать, значит есть за что.
Но Бабаян - огромнейший хайпожор, который "изобрел" читай спиздил все подряд прорывные технологии. Его Sun нахуй послали, прокрутив на залупе с его "невероятными процессорами", а свой охуенный Эльбрус ДВЕТЫЩИ он так никогда и не выкатил. Лол, обещал захуярить и похоронить Интел с начала 90х, а в итоге выкатили какое-то говнище только в 2008, которое с глубоким проглотом сосет у самых бюджетных Интелов. ГДЕ БЛЯТЬ ПРОТОТИП СУКА? В смысле, раз такой охуенный процессор был, где хоть один? Почему Sun нахуй послали? Потому что он им говна лил за шиворот, как вам льет. Увидел кучу модных, появившихся на заре 90х терминов (по крайней мере в отношение процессоров) - суперскалярность, VLIW, параллелизм, предвыборка кода. И как начал спамить этой терминологией всех подряд, не забывая еще спиздануть, что все это придумал он.
Пиздабол он какой-то, миллион раз уже попадался, поэтому я ему не очень-то верю.
Аноним 18/03/19 Пнд 22:36:18 1366780246
>>1366776
> ты структуру вообще инициализируешь?
Инициализирую бля! Как понять "иницмализирую"?
Картинки не битые если что
Аноним 18/03/19 Пнд 22:58:00 1366793247
>>1366777
> как вам льет. Увидел кучу модных, появившихся на заре 90х терминов
Кому вам, мудила? Он в каждой лекции трындит про Эльбрус 1-2 повторяя по кругу что - OoO суперскаляр, первый (сирийный) в мире, интел только в 93ем осилил, всем давали пасасать.

Итаниум никакого отношения ни к эльбрусу ни к бабаяну не имеет.
Аноним 18/03/19 Пнд 23:18:54 1366805248
>>1366793
Бабаяноёб порвался.
Кого блять Интел только в 93 осилил, долбаеб? Суперскалярный мейнфрейм? Ну охуеть теперь, вот только Интел по микропроцессорам, а не по мейнфреймам специализируется. Первый же суперскалярный рабочий микропроцессор создала Моторола в 88 году, но никак не уебан Бабаян.
Но и с желанием быть первым суперскалярщиком Бабаян сосёт бибу, так как Крэй создавал АБСОЛЮТНО СЕРИЙНЫЕ (а не 1-2 штуки, как его невъебенные "серийные" Эльбрусы) суперскалярные машины на 16 лет раньше этого пиздабола.
Так что непонятно на что он тут претендует, на какое первенство. На суперскалярность? Сорян, вы опоздали на 16 лет, надо было раньше приходить. На суперскалярный микропроцессор? Извините, но что-то никто никогда не видел ваших рабочих суперскалярных микропроцессоров. Короче, он знатный пиздабол.
Аноним 18/03/19 Пнд 23:29:31 1366809249
>>1366805
> Бабаяноёб порвался
kek написал порвавшийся долбоеб с горелой дупой. Иди с бабаяном на хабре спорь кто там первый и кто круче, тут тема про язык Си.
Аноним 19/03/19 Втр 01:03:14 1366860250
jazz is my life.jpg (50Кб, 500x672)
500x672
>>1366773
> 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 - ебануться).
Аноним 19/03/19 Втр 01:17:23 1366862251
>>1366860
Алсо, это чувак из RAD Game Tools? Как они туда столько классных людей набирают? Одни Фабиан и Кейси стоят сотни программистов.
Аноним 19/03/19 Втр 01:32:08 1366865252
Аноним 19/03/19 Втр 07:20:18 1366911253
>>1366688
Память выделил? Или в указатель что-то записал перед вызовом?
Аноним 19/03/19 Втр 07:22:20 1366912254
>>1366679
>Ну прата же.
Спасибо.
Аноним 19/03/19 Втр 08:23:04 1366919255
>>1364727
GCC и современные стандарты поддерживает.
Аноним 19/03/19 Втр 09:18:08 1366936256
5342553224.png (62Кб, 773x585)
773x585
>>1366776
Короче у меня похоже проблема с пониманием как правильно работать со структурами

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

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

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);
}

когда тоже самое на пикрелейтед через обычные глобальные переменные все работает, видимо потому что еще функции (которые для каждого элемента приходится отдельную держать) инлайнятся.
Аноним 19/03/19 Втр 09:20:53 1366938257
423654325532.png (22Кб, 370x164)
370x164
>>1366936
> делает вот это
да ебаное говно
Аноним 19/03/19 Втр 09:40:51 1366945258
>>1366938
Включи пошаговую отладку, посмотри на каком вызове падет. Ну или тошни в лог, перед каждым вызовом. Смотри где падает.
Аноним 19/03/19 Втр 09:50:00 1366946259
>>1366938
Потому что у тебя все переменные в структуре в стеке, ВОЗМОЖНО кроме img_t. Надо смотреть и ее описание, возможно там есть член требующий явной инициализации.
Аноним 19/03/19 Втр 09:59:54 1366949260
>>1366945
> Ну или тошни в лог, перед каждым вызовом.
жабаскрипты жабаскриптики так и делаю

Алсо:

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) оно внутри с копией структуры работает внутри а на глобальной структуре это никак не отражается.

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

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

Вот так вот оно в заголовке определено
Аноним 19/03/19 Втр 10:00:17 1366950261
>>1366763
Сделай так
_TAG_ Button1;
Я честно говоря вообще не понимаю, как это у тебя компилируется.
Аноним 19/03/19 Втр 10:07:56 1366952262
>>1366949
В btn_init и btn_draw по ссылке передавай
Аноним 19/03/19 Втр 10:08:18 1366953263
Аноним 19/03/19 Втр 10:18:13 1366956264
>>1366950
> Я честно говоря вообще не понимаю, как это у тебя компилируется.
прикидываюсь clang -ом

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

>>1366952
А как правильно то? https://paste.ofcode.org/vi5TZjpwaZhLrLfGAv68Bt
Когдя я их использую он (компилятор) вечно пиздит
Аноним 19/03/19 Втр 10:21:49 1366958265
>>1366956
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);
}
Аноним 19/03/19 Втр 10:23:33 1366959266
>>1366958
Примерно понял, можешь пасту не делать, сейчас попробую
Аноним 19/03/19 Втр 10:23:38 1366960267
Аноним 19/03/19 Втр 10:34:06 1366965268
64766343654.png (113Кб, 734x563)
734x563
Аноним 19/03/19 Втр 10:35:57 1366967269
>>1366965
Хорошим тоном будет еще избавиться от глобальных переменных.
Аноним 19/03/19 Втр 11:09:42 1366979270
>>1366949
Либо передавай в свой инит указатель, либо вообще нахуй убери и обращайся в интернете напрямую к баттон1,2,3, они у тебя все равно глобальные на какой-то хуй.
Аноним 19/03/19 Втр 11:11:43 1366980271
>>1366967
Двачую, засунь переменные в начало мейна, ты все равно их в функцию передаешь, тогда в чем смысл глобальноститем более она тут вообще не к месту
Аноним 19/03/19 Втр 11:26:36 1366984272
>>1366979
> обращайся в интернете напрямую к баттон1,2,3, они у тебя все равно глобальные на какой-то хуй.
так и было изначально, но с этим неудобно работать, мне вот надо еще 2 элемента идентичных добавить и обрабатывать, надо опять каждой по хуевой горе переменных объявить и функций написать.
Сабжевый код это упращенная версия
>>1366980
Пока (к сожалению) не могу, много где еще напрямую обращение идет, но когда код чище в нем уже лучше видно как можно так все организовать что бы они в глобальной области видимости не весели.
Аноним 19/03/19 Втр 13:43:18 1367030273
5465465646.jpg (919Кб, 1080x1080)
1080x1080
Тэк. Поясните мне один момент.

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

Чем С89 лучше С11?
Аноним 19/03/19 Втр 13:46:42 1367032274
>>1367030
>лоре
Говноед, уходи
Аноним 19/03/19 Втр 13:51:36 1367033275
>>1367030
Единственное объяснение - это старым восьмибитным компилятором под спектрум не соберется.
Аноним 19/03/19 Втр 13:53:20 1367034276
>>1367032
>Говноед, уходи

>Выискивает куски в посте не относящиеся к теме
>офтопит
>подрывается
>называет другого говноедом

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

на лоре хотя бы тебя не пидорнут с форума за отказ лизать жопу макаке и на любую нетривиальную проблему распишут разжеванные тома
Аноним 19/03/19 Втр 14:03:10 1367036277
Подскажите тупому дебилу, как слинковать правильно:
В 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.
Аноним 19/03/19 Втр 14:17:11 1367038278
>>1367036
если запустить
sdl2-config --libs

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

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

Надеюсь тебе это поможет
Аноним 19/03/19 Втр 14:33:07 1367043279
>>1367034
>лоре
Говноед, уходи
Аноним 19/03/19 Втр 14:39:09 1367047280
>>1367036
>Подскажите
Но зачем? Ведь если тебе подскажут, оно заработает, а значит пердолингу конец. Пердоля против пердолинга, ты сам себя отрицаешь.
Аноним 19/03/19 Втр 14:45:11 1367051281
>>1367038
Ничем не помогло. Вот 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 с самой либой в директории
Аноним 19/03/19 Втр 15:42:37 1367067282
image.png (100Кб, 1024x1024)
1024x1024
>>1365586
>Людьми
Зачем мне опускаться ниже моего уровня?
Аноним 19/03/19 Втр 15:49:20 1367069283
>>1364241
Напиши сначала как в книжке Господа нашего http://www.cypress.com/file/56651/download, калькулятор с польской нотацией юзающий стэк тянешь знач. из стека пока не будет операция - выполняешь операцию над числами и суешь обратно в стэк, парсер легчайше сделать для такой хуйни.
Аноним 19/03/19 Втр 15:58:33 1367071284
>>1364967
Vim и Emacs лучше емакс имхо
Аноним 19/03/19 Втр 16:24:44 1367086285
>>1367030
> на лоре
Говноед уходи
Аноним 19/03/19 Втр 17:03:44 1367099286
Как канонично получить строку из функции? Грубо говоря аллоцировать в main и передавать указатель в ф-ию, потом в main делать free()? https://ideone.com/igkm1b
Может, вообще в какой-то книге можно почитать про такие базовые best-practice по Сишке?

третий день пишу на си
Аноним 19/03/19 Втр 17:14:41 1367104287
>>1367099
По хорошему удаляй в том же скоупе, что и выделяешь, чтобы все было более менее наглядно или делай подобие ООП с конструктором и деструктором, только все равно деструктор придётся ручками дёргать.
Аноним 19/03/19 Втр 17:19:44 1367108288
Аноним 19/03/19 Втр 17:24:01 1367109289
>>1367108
str_t func() {
static char buff[] = "fuck";
return buff;
}
Аноним 19/03/19 Втр 17:30:50 1367115290
Аноним 19/03/19 Втр 18:02:23 1367131291
>>1367108
>>1367109
Все бы хорошо, да только годится исключительно для ненужных функций (функция, которая возвращает константу, является ненужной по определению). А менять состояние функции через static без поломок можно только до первой многопоточности.
Аноним 19/03/19 Втр 18:09:23 1367135292
>>1367131
Оно как бы вообще идея плохая. Я так понял, просто для примера возможности.
Аноним 19/03/19 Втр 20:12:02 1367194293
изображение.png (200Кб, 330x478)
330x478
изображение.png (136Кб, 330x429)
330x429
this или this ?

Перекатываюсь с питона-джанго
Аноним 19/03/19 Втр 20:13:41 1367196294
>>1367194
Читал первую, лайтовая приятная книжка. Легко читается, легко понимается. Моя первая книга по си, могу сказать что ок.
Аноним 19/03/19 Втр 21:11:37 1367224295
>>1366860

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

https://www.youtube.com/watch?v=PvK2nVMKEQ4
Аноним 20/03/19 Срд 08:23:15 1367392296
pchel.png (516Кб, 586x566)
586x566
Почему rand() выдает одинаковые числа?
Аноним 20/03/19 Срд 09:02:59 1367406297
>>1367392
только вчера сам об этом гуглил

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

srand( time(NULL) );

зкштеа("random: %d ", rand() % 10); // => 0...10
Аноним 20/03/19 Срд 09:04:03 1367407298
Аноним 20/03/19 Срд 09:06:51 1367408299
>>1367406
Это в учебнике который я читал написано про это что надо через переменную
time_t t;
srand(time(&t);
И дальше уже используешь rand().
Аноним 20/03/19 Срд 09:34:16 1367411300
>>1367392
Если интересует почему так, то потому что статические (т.е. компилируемые без рантайма) языки так устроены что никакого рандома быть не может.
напиши ка цикл или алгоритм который рандомно числа подбирает - не сможешь. Тебе так и так надо какое то стартовое значение которое должно меняться, но в бинарнике же ты не можешь значение менять (в зависимости от запуска итд).

>>1367408
Да блять выкинь ты нахуй этот учебник, открой документацию нормальную и смотри 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);
}
Аноним 20/03/19 Срд 15:22:07 1367526301
Как делать массив указателей на функции?
Все функции void, аргументов нет.
Пробовал void (mas[8])() = { &f1, ... } - на каждую данную функцию ругается "ссылка на неразрешённый внешний символ _f1 в функции _foo" в файле file.obj
Без амперсанта то же.
Если сделать так:
void (
mas[8])();
mas[0] = &f1;
mas[1] = &f2;
...
то та же ошибка, но не ругается на нулевую функцию.

typedef void (funcs)();
funcs* mass[8];
не помогает
Аноним 20/03/19 Срд 15:31:50 1367533302
>>1367526
typedef юзай, проще будет
Аноним 20/03/19 Срд 15:35:56 1367535303
>>1367526
Емнип там нужен тип данных. Либо выделять память через малок.
Типа:
int звездочка array[];
Аноним 20/03/19 Срд 15:39:01 1367538304
>>1367526
>>1367535
>void (mas[8])() = { &f1, ... }
void (*mas[8])() = { &f1, ... }
Извиняюсь
Аноним 20/03/19 Срд 15:40:32 1367539305
>>1367538
Да, это не решение проблемы, я неправильно написал свой код.
Аноним 20/03/19 Срд 15:57:47 1367543306
>>1367526
Решил, массив создавал правильно, ошибка в другом
Аноним 20/03/19 Срд 16:11:24 1367555307
>>1367543
так в чем же? принеси давай весь код
Аноним 20/03/19 Срд 16:25:09 1367562308
>>1367555
У функций, которые клал в массив, было по два прототипа - в хэдере и в другом файле
Аноним 20/03/19 Срд 16:59:23 1367575309
Бля как вы под шиндошс конпеляете? Этож пиздец какой то, нашел вроде аналог macbrew/linuxbrew (chocolatey) а там надо блять некрософт повершел 2.0, а ему надо нетхренворк 4+, а чтобы блять поставить нетхренворк 4+ надо блять через обновления эти ебучии установить 4.0, потом оно перезагрузится, потом 4.5, опять перезагрузится потом 4.6.1 потом 4.6.2 и так до последней версии и каждый раз чето блять качает и ставит по пол часа.
Как с этим блять работать то вообще?
Аноним 20/03/19 Срд 17:14:04 1367580310
Аноним 20/03/19 Срд 17:47:48 1367600311
>>1367580
> Mingw64
Надо им было переименовать проект когда форкали, а то все ссылки видут на обычный mingw
А пакетный менеджер там есть хоть какой то? А то блять какой не возьми они все на повершеле поголовно, ну в чем проблема взять руби или пистон тот же ну нахуя опять завязывать свои приложения на МС поделия, ну ничему вообще люди не учатся.
Аноним 20/03/19 Срд 17:50:49 1367601312
>>1367600
>А пакетный менеджер там есть хоть какой то
Нет, пакетная среда в Cygwin
Аноним 20/03/19 Срд 17:54:28 1367605313
>>1367601
> Cygwin
О, лучь света, спасибо.
Аноним 20/03/19 Срд 18:06:19 1367614314
>>1367605
> Cygwin
> лучь света
Поспешил с выводами, такое чувство что мне проинсталировали дебиан скомпилированый для винды.
Говно короче.
Аноним 20/03/19 Срд 18:26:59 1367621315
Аноним 20/03/19 Срд 18:27:57 1367623316
>>1367575
У меня линупс на виртуалке.
Аноним 20/03/19 Срд 18:30:22 1367625317
>>1367623
> У меня линупс на виртуалке.
Так а под винду то в нем не накомпиляешь.
Аноним 20/03/19 Срд 18:35:38 1367627318
>>1367625
Блять, а может свой под винду компилятор написать? Чтобы нормально работал.
Аноним 20/03/19 Срд 18:52:06 1367630319
>>1367627
Пердоли как всегда, писать программы на Си -не пишем, лучще попиздим про кривые костыли, изображая ложную активность.
Аноним 20/03/19 Срд 18:58:45 1367632320
65347364.png (66Кб, 668x664)
668x664
Это какой то идиотический пиздец, в этом повершеле нельзя скопировать текст он просит перезапускаться для продолжения работы с установленной программой, и ни один пакетный менеджер не устанавливает пакеты (chocolatey, Scoop)

>>1367630
> писать программы на Си -не пишем, лучще попиздим про кривые костыли
А толку их писать если их проверить нельзя
Аноним 20/03/19 Срд 19:34:32 1367638321
>>1367625>>1367575
Ну да, чет тупанул. Под шиндос есть codebloks.
Аноним 20/03/19 Срд 20:29:14 1367663322
>>1367614
>дебиан
>Говно
В тот ли ты трхед забрел, петушок?
Аноним 20/03/19 Срд 20:30:07 1367664323
>>1367411
> потому что статические (т.е. компилируемые без рантайма) языки так устроены что никакого рандома быть не может
Што? Это-то тут при чем? Тру рандома вообще быть не может, а какой-нибудь твой пхп просто сам делает srand().

>>1367621
Двачую, лучшее решение.
Аноним 20/03/19 Срд 20:32:53 1367666324
15524753678890.png (1111Кб, 960x640)
960x640
>>1367632
>chocolatey, Scoop
Что это ща грвно, нахуй оно здесь нужно? Уебуй к смузиодминам
Аноним 20/03/19 Срд 20:45:25 1367682325
>>1367632
Есть же pip под Винду, правда не уверен, что в нем есть то, что тебе нужно.
Аноним 20/03/19 Срд 21:06:35 1367709326

>>1367682
так и gem и npm есть но мне же надо dev хидеры и либы типа libogg libsdl ...

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

Я не верю в это, не хочу верить. Не хочу верить что в 2019г мне придется ходить сейчас по сайтам и качать инсталяторы архивы того что мне надо для сборки потом открывать документацию и курить как же в винде пути устроены там же не сделаешь cd ~project/ && make
Аноним 20/03/19 Срд 21:13:52 1367755327
>>1367709
> Просто ведь вопрошаю чем под виндой люди пользуются
mingw-w64, ответили уже. И Visual Studio еще. У крупных проектов обычно есть готовые проекты для VS, ей и собирают (msbuild все дела). Детектится по использованию ucrt, например.

> мне придется ходить сейчас по сайтам и качать инсталяторы архивы
Один инсталлятор. msys2. Внутри обычный pacman, которым ты ставишь компилятор и либы. В его же консольке собираешь либы, которых в бинарном виде не завезли.
Аноним 20/03/19 Срд 21:24:54 1367770328
>>1367664
> Што? Это-то тут при чем? Тру рандома вообще быть не может, а какой-нибудь твой пхп просто сам делает srand().
Ну во первых не мой, хотя мне нравится пхп как яхык за исключением некоторых вещей,
Во вторых инструкции типа srand ни в одном известном мне процессоре тоже нет.
Аноним 20/03/19 Срд 21:33:22 1367776329
>>1367755
mingw-w64 я уже качнул, но что то у меня там неправильно поставилось, msys2 на первый взгляд то что нужно, но пока не трогал, завтра попробую его и мингв через него. Но мне кажется паке тов там раз два и опчелся, но посмотрим.
А вижуал студия платная же да и проект на опенсорцные либы и флаги гцц/шланг завязан, это чисто для шинд-онли коммерческих приложений.
Аноним 20/03/19 Срд 21:41:21 1367781330
>>1367770
> Во вторых инструкции типа srand
Потому что srand() это функция сишного рантайма, с чего бы ей быть инструкцией? И пхп до 7 вроде версии просто обращался к сишным rand()/srand(). Обычно (псевдо)случайные числа генерируют программно, но еще есть специальные железки для криптографии и есть инструкции типа rdrand в x86, там в качестве источника энтропии используются датчики и внутреннее (непредсказуемое) состояние, поэтому задавать seed не нужно.

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

> А вижуал студия платная же
Community бесплатная, платные фишки для сборки не нужны. Весит только много, даже если build tools качать, это да.
Аноним 20/03/19 Срд 22:51:48 1367825331
>>1367781
> Потому что 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
Ох лол вот это я обосрался (хотя на самом деле обосрался интел со своими нейросетями в процессорах)
Аноним 21/03/19 Чтв 00:36:31 1367874332
>>1367825
> srand это функция стандартной библиотеки которая после компиляции превратилась в инструкции процессору и обречена выдавать статически предсказанный результат
Она ничего не выдает, она void возвращает, привет.

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

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

> Если даже сишная rand() после каждой компиляции программы другие числа начинает по кругу гонять
Не начинает, в этом вся суть. Если не вызовешь srand() вообще, то будет одна и та же последовательность, которая зависит от реализации генератора. И насчет круга ты тоже слегка загнул. Даже у линейного конгруэнтного генератора выше период последовательности 231.
Аноним 21/03/19 Чтв 00:49:45 1367880333
.png (28Кб, 723x413)
723x413
Бесконечно можно вдуплять три вещи в float: это +INF, -INF и NaN.
Аноним 21/03/19 Чтв 00:58:47 1367883334
>>1367880
Это ты, наверное, еще не знаешь про denormals, сорта NaN и про разную псевдо-хуйню у long double в x86.
Аноним 21/03/19 Чтв 01:05:28 1367884335
.png (9Кб, 513x127)
513x127
>>1367883
Да вообще песец полный. Там еще оказывается два нуля есть, положительный и отрицательный.
Аноним 21/03/19 Чтв 01:17:00 1367887336
>>1367880
>printf("%s", " ");
дай отсосу, брат
Аноним 21/03/19 Чтв 01:53:01 1367892337
>>1367887
Похуй, gcc все равно в putchar() свернет.
Аноним 21/03/19 Чтв 08:39:44 1367927338
Ребят, я совсем нуфаг в программировании. Чем компиляторы отличаются друг от друга? вообще я доблаёб, мог бы и загуглить, пойду этим и займусь
Аноним 21/03/19 Чтв 10:58:57 1367953339
>>1367927
Функционал компилятора выходит за рамки того, что продиктовано стандартом. Вот в этом всем и отличаются.
Аноним 21/03/19 Чтв 14:12:35 1367993340
>>1367194
Братишка читай лучше сразу праймер прата.
Аноним 21/03/19 Чтв 15:26:32 1368027341
Здравствуйте. Сделал задачку Пратовскую, пирамидку.
Укажете на ошибки? Подскажите еще пожалуйста как с массивом со строчкой из букв сделать можно программу, или там придется переписывать?

https://pastebin.com/EARV37u4
Аноним 21/03/19 Чтв 21:03:06 1368145342
>>1368027
> Укажете на ошибки?
С -Wall собери, компилятор сам укажет. Алсо, ты задачу не привел, хуй знает, что ты пытаешься сделать. Алсо, пробелы можно одним printf-ом выводить: printf("%*s", 10, "").
Аноним 21/03/19 Чтв 21:35:58 1368152343
>>1362799 (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));

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



Аноним 21/03/19 Чтв 23:03:36 1368202344
>>1368152
Не совсем понял что ты имеешь в виду.

temp = temp&~(1 << 4)^(1 << 7)|(1 << 5);
Вот это штоле?
Аноним 22/03/19 Птн 00:08:33 1368239345
>>1368152
> инструкцией
Пиздец перевод. Это кто, прата?

> char temp; >переменная
> temp ^= (1 << 7); >инвертировать первый бит
> первый бит
Пиздец перевод. Алсо, запись значений больше SCHAR_MAX в signed char - implementation defined.
Аноним 22/03/19 Птн 06:59:59 1368311346
>>1368152
Один бит это единица. Если нужно несколько бит, меняешь единицу на число с нужным расположением и количеством бит.
Аноним 22/03/19 Птн 08:59:30 1368337347
>>1368145
>С -Wall собери, компилятор сам укажет.
Огромнейше благодарю. Одно выражение не имело смысла. Удалил, скомпилировал с C-wall и ошибок не обнаружено.
Нужно было создать с помощью циклов расширяющуюся пирамиду до введенной заглавной буквы.
Аноним 22/03/19 Птн 21:42:43 1368615348
Че-то у меня наитупейший вопрос (как-будто 2+2 разучился складывать).
Чистить надо же только после calloc, malloc, etc? Если я просто поинтер ебанул (int* p = &jopa), при выходе из области видимости православно рипнется и p и jopa?
22/03/19 Птн 21:57:41 1368622349
>>1368615
Да, вручную освобождать нужно только то, что ты вручную же и выделил. Ну или если тебе какая-то либа выделила.
Аноним 22/03/19 Птн 22:13:29 1368629350
Аноны, как в С проекте прикрутить ASM файл? Чтобы как у С++ бояр красиво все было.
22/03/19 Птн 22:48:11 1368643351
>>1368629
В каком проекте? Почему это должно как-то отличаться от C++, по твоему? Просто собираешь .asm в .obj и линкуешься к нему. Если IDE, то куда тыкать, зависит от IDE, а ты ее не указал.
Аноним 22/03/19 Птн 23:32:52 1368659352
image.png (145Кб, 1824x740)
1824x740
>>1368643
Пардон. Вот хочу чтобы как на прикрилейтед было.
23/03/19 Суб 00:49:42 1368694353
Аноним 23/03/19 Суб 01:17:07 1368700354
>>1368694
Так это для С++ только работает.
23/03/19 Суб 02:37:43 1368729355
>>1368700
Что за бред, при чем тут C++ вообще? Или тебя смущает extern "C" в декларации? Просто убери, и все.
Аноним 23/03/19 Суб 06:38:14 1368754356
image.png (5Кб, 458x20)
458x20
Как на С эту конструкцию интерпретировать?
Аноним 23/03/19 Суб 09:56:44 1368788357
>>1368754
Замени плюсовые касты на си-стайл касты.
Аноним 23/03/19 Суб 16:04:22 1368883358
Пацаны, объясните мне тупому почему мой код по сортировке выбором в двумерном массиве не работает?
https://ideone.com/k8SWKL
Аноним 23/03/19 Суб 17:31:39 1368901359
Почему если я пытаюсь преобразовать 6.0 в 6, то получаю 5, хотя с остальными числами всё в порядке? Как это исправит? Преобразую через цел_пер=(int)вещ_пер.
Аноним 23/03/19 Суб 17:40:21 1368903360
Аноним 23/03/19 Суб 17:46:49 1368906361
>>1368883
>for (int k = 1; k < 6; k++)
точно не
for (int k = j+1; k < 6; k++)
Аноним 23/03/19 Суб 17:47:53 1368907362
>>1368901
твое 6.0 вероятно 5.9999999998
а преобразовние приведением отбрасывает дробную часть
Аноним 23/03/19 Суб 17:51:41 1368909363
>>1368883
Потому что это какая-то хуета. Перепиши с нуля и задумайся хоть немного
Аноним 23/03/19 Суб 18:00:29 1368911364
>>1368907
Добавил к вещ.переменной 0.1 и всё нормально. а без этого костыля никак?
Аноним 23/03/19 Суб 18:07:04 1368913365
>>1368911
Добавляй 0.5 если тебе нужно округление
Привыкай к костылям, числа с плавающей точкой это те еще сволочи
Аноним 23/03/19 Суб 18:13:38 1368916366
>>1368913
Разве костыли не говнокод?
Аноним 23/03/19 Суб 18:17:17 1368918367
Вот мой тот самый код с 5 вместо 6, который я исправил. Как сделать его менее говнокодистым?
https://ideone.com/OBGEN8

Нельзя использовать что-то кроме stdio.h, нельзя массивы и циклы. Вроде это все нельзя, остальное можно. Ебал в рот тех, кто придумывает такие задания.
Аноним 23/03/19 Суб 18:18:48 1368920368
>>1368918
Ах да, там нужно разделить a.b на a и b и сравнить что больше, максимум цифр после точки 5.
Аноним 23/03/19 Суб 18:22:24 1368921369
>>1368916
Нет, бывают правильные костыли.
Аноним 23/03/19 Суб 20:16:43 1368964370
Решил сделать калькулятор и убил на это целый день. А ведь тут даже указателей нет. Что же дальше то будет
Аноним 23/03/19 Суб 20:24:15 1368966371
Мужчины, поясните по хардкору, чем рекурсивный спуск лучше обратной польской нотации при написании калькулятора?
Аноним 23/03/19 Суб 20:51:13 1368979372
>>1368966
Потому что современные программеры — макаки, а чем меньше кода надо писать, и чем меньше задумываться над своей поделкой, тем больше макака рада.
Аноним 23/03/19 Суб 21:57:42 1369008373
изображение.png (491Кб, 1920x1050)
1920x1050
Аноним 23/03/19 Суб 22:15:20 1369013374
>>1368966

Рекурсивный спуск имеет в своей основе представление о формальных грамматиках, так что это более общее и намного шире применимое решение.
Аноним 23/03/19 Суб 22:17:36 1369015375
>>1368964
>целый день
Я уже много дней бьюсь по несколько часов. Пока сделал только базовую арифметику, скобочки, степень, остаток от деления и целочисленное деление. На этом пока остановился, так-как знаний маловато, буду вникать в теорию, а потом продолжу.
https://pastebin.com/ng3s7h61

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

Аноним 23/03/19 Суб 22:23:38 1369020376
>>1368979
>чем меньше кода надо писать, и чем меньше задумываться над своей поделкой, тем больше макака рада.
Лол,обычно это называют эффективность.
Аноним 23/03/19 Суб 22:23:40 1369021377
>>1369015
Ребята, вы делаете пиздецкий говнокод. Пожалуйста, прочитайте КиР перед тем как что-то постить в этот тред. Проделайте все (ну хотя бы процентов 70) упражнений. Это займет у вас месяц при неспешном чтении.
В результате вы разберетесь и в построении калькулятора, и в работе со строками, и в сортировке и даже в работе динамической памяти вместе с работой в файловой системе.

Нужно внести правило банить любого, чей вопрос обсуждается и решается в K&R.
мимо читавший второкурсник
Аноним 23/03/19 Суб 22:30:30 1369025378
>>1369021
>страдайте хуетой месяц, и только потом программируйте
Классный способ отшить любого, привив отвращение к программированию.
Аноним 23/03/19 Суб 22:32:15 1369027379
>>1369025
Я не говорю идти читать ебаный стандарт, это охуенная книга с кучей практических заданий, а не попыток этих неумех собрать из лего истребитель.
Аноним 23/03/19 Суб 22:34:17 1369028380
>>1369021
>K&R
Это книга не для начинающих, а калькулятор очевидно пишет ньюфаг.
Аноним 23/03/19 Суб 22:37:37 1369031381
>>1369028
Это книга специально для вкатывания и написана. Калькулятор там как раз и разбирается где-то в 4 главе
Аноним 23/03/19 Суб 22:37:59 1369032382
>>1369027
Книга это хуета с хуетой. Интересно решать левые плешивые задачки только тому у кого собственных задач нет, то есть нет интереса к программированию, а вместо этого только фетиш на учебу.
Аноним 23/03/19 Суб 22:40:40 1369034383
>>1369032
Наверно решать интегралы и считать плотность вероятности ты тоже учился на практике и без грамма теории, да?
Не неси хуйню, это серьезный яп системного уровня, а не петухоскрипт. С таким подходом когда он дойдет до работы с памятью ему ничего не останется как жидко пернув умереть
Аноним 23/03/19 Суб 22:41:21 1369036384
>>1369031
Нет, она написана для тех кто уже умеет программировать хотя бы на каком-то другом языке.
Аноним 23/03/19 Суб 22:44:48 1369038385
image.png (93Кб, 1081x169)
1081x169
>>1369036
Ему уже достаточно тех знаний, которые он имеет, чтобы вкатится в нее
Аноним 23/03/19 Суб 22:44:53 1369039386
>>1369034
Тупая аналогия. Раблта с памятью это просто, совсем не нужно ничего зубрить как с формулами, нужно только понять, а для этого не нужно не только знаний, но доже ума, реально тупой справится. нужно только желание понять, а не писать хуйню вслепую. Но с последним отношением, опять, значит к программированию нет интереса.
Аноним 23/03/19 Суб 22:50:57 1369045387
>>1369038
Может и достаточно, я начал с неё и несмог в неё совсем. И есть мнение что не я один. Прочитал перри и сейчас читаю прата.
Аноним 23/03/19 Суб 22:56:24 1369048388
>>1369021
А мне нравится мой говнокод. Для вас может смешно, но для меня это первая более-менее крупная программа на Си, которая работает и уже была успешно использована по назначению.
Аноним 23/03/19 Суб 23:00:59 1369051389
>>1369045
Читаю сейчас "Язык программирования C. Лекции и упражнения, 6-е издание" Прата. По ощущениям написано очень растянуто, зато всё понятно.

калькуляторщик
Аноним 23/03/19 Суб 23:07:33 1369052390
Пролистал Перри, прочитал оглавление Прата.
пиздец пиздец пиздец

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

Охуеть, не хочу учить как деды и байтоебы, хочу хвастаться перед мамкой количеством страниц. Поссал на вас.
Аноним 23/03/19 Суб 23:14:44 1369056391
>>1369021
Всегда смешат дети вроде тебя с непомерным чсв.
Аноним 23/03/19 Суб 23:19:19 1369060392
>>1369056
Да, есть такое. Хоть на дваче могу побыть чсв-уебаном, а ирл я полуметровый няша-стесняша :3
Аноним 23/03/19 Суб 23:19:45 1369061393
>>1369052
Сейчас современность, поэтому начали с современного чтива, а олдовую книгу от отцов-основателей тоже почитаем, когда руки дойдут, не волнуйся.
Аноним 23/03/19 Суб 23:29:44 1369067394
Это же гении со школы™21™ опять набегают, нахуй вы им помогаете?
Аноним 24/03/19 Вск 00:16:08 1369091395
>>1369052
Зачем мне читать кривой манула дидов если есть благородная книжка где все не торопясь и обстоятельно изложено? Ем флорентину, попиваю джек дениелс и покуривая сигару читаю перед камином, а ты завидуй плебей.
Аноним 24/03/19 Вск 00:53:14 1369100396
>>1369091
Могу позавидовать. Слабоумные более счастливы. А дедовские книги не кривые. Просто написаны в то время, когда комп был не у каждого примата, а только у тех, с кем можно поговорить как с homo obrazovannies, а не кормить тысячами страниц, от которых мозг отключается. Учил по K&R и не чувствовал себя кретином, сосите залупу, честь имею.
Аноним 24/03/19 Вск 00:57:32 1369102397
>>1369100
Ну раз ты так учил то конечно все так должны учить, дед. Все кто не так учат неучи и балбесы. Ппц ты песком сыплеш, старпер.
Аноним 24/03/19 Вск 01:02:24 1369106398
>>1369025
Бедняжка. Небось, мать наехала "вон у Ленки-то сын за 2 недели программизм освоил и дом родителям купил, не то что ты, нахлебник..."
Труъ-кодеры всем скопом поссали тебе на лицо, оставив немного для следующего анона, кому тоже месяц (не 5 лет, не год даже, а МЕСЯЦ БЛЯДЬ) учебы - унижение. У гуманитариев понятие глубины, видать, из коробки поломано.
Аноним 24/03/19 Вск 01:04:26 1369108399
>>1369102
На связи кун 20лвл, простатит, хронический вывих ключицы ноги, задавайте ответы.
Аноним 24/03/19 Вск 01:11:23 1369112400
>>1369108
>задавайте ответы
Почему нет геморроя?
Аноним 24/03/19 Вск 01:14:34 1369116401
>>1369112
Пакет с дрисней под ребром, жопа не эксплуатируется за ненадобностью.
Аноним 24/03/19 Вск 02:00:38 1369133402
>>1368918
Что за пиздец, без циклов и всего остального это вообще выглядит как несвязанный шизофазический бред, странный у вас препод.
Аноним 24/03/19 Вск 02:01:55 1369134403
Аноним 24/03/19 Вск 02:09:09 1369136404
>>1369045
>>1369021
Хуй знает, я вообще особо си не учил, так было полкурса в универе, перед плюсами, вот их более менее учил, в основном по курсам с ютубчика, пробовал читать какую-то книжку, осилил страниц 200 может, потом забил хуй.
Но я очень быстро информацию усваиваю, может в этом дело.
кернел-дев-20-лвл
Аноним 24/03/19 Вск 02:12:52 1369137405
>>1369136
>кернел-дев-20-лвл
Кернел в Барби и поняшках*
Аноним 24/03/19 Вск 02:15:04 1369138406
>>1369137
Мои комиты есть в ядре линукса, да и на работе я драйвер пишу, собственно связанные с ним патчи туда и отправляются, шутник.
Аноним 24/03/19 Вск 02:19:43 1369139407
>>1369138
> комиты есть в ядре линукса
Ебать ты говномес, ты уже понял, что ядро линуха это показатель того как не нужно разрабатывать ПО?
Аноним 24/03/19 Вск 02:21:44 1369140408
>>1369139
Общий уровень кода так себе конечно, благо я работаю не надо самим ядром, а просто портим драйвер в апстрим периодически.
Но как опыт для первой работы я щитаю довольно хороший.
алсо помимо линуха ещё QNX дёргаю, в теории можно ещё DPDK и Винду потыкать
Аноним 24/03/19 Вск 02:30:42 1369141409
>>1369140
>QNX дёргаю, в теории можно ещё DPDK
Чому L4 не дергаешь и прочие ядра созданные инженерами?
Аноним 24/03/19 Вск 02:39:56 1369145410
>>1369141
На самом деле я даже не знаю, что этону видимо пока кастомерам это не нужно, да и вообще вряд ли будет нужно, учитывая что мы мультигиговый езернет разрабатываем как бы, вероятно поддержку вайфай 6 тоже будем делать совместно с квалкомом, а QNX очень даже, на нем весь аутомотив будет держаться, поэтому и пилим.
Аноним 24/03/19 Вск 02:55:45 1369148411
Задал похожий вопрос в плюсотреде. Зачем писать на сях, если есть нативный интероп с растом? Пишите весь новый код на расте и интегрируйте его в существующие проекты. (Это не касается embedded, тут раст пока не стабилен)
Аноним 24/03/19 Вск 02:57:07 1369149412
>>1369148
>Пишите весь новый код на расте
Зачем?
Аноним 24/03/19 Вск 03:12:36 1369151413
>>1369149
Удобнее обработка ошибок, строгая, статическая типизация, проблемы с памятью решаются на этапе компиляции, darta races отлавливаются на этапе компиляции, алгебраические типы данных, статический полиморфизм, макросы получше, производительность такая же, можно юзать уже существующие библиотеки на C и C++.

Короче 0 минусов, одни плюсы.
Аноним 24/03/19 Вск 03:19:43 1369153414
>>1369151
>Статическая типизация
Поехавший? Ты в си треде если что, а не в треде КулСмузиСкрипт2010.
>Проблемы с памятью
Какие проблемы с памятью?
Аноним 24/03/19 Вск 03:31:03 1369156415
Аноним 24/03/19 Вск 03:34:21 1369157416
>>1369153
Акцент на строгости типизации. Я в курсе, что в сях она статическая, лол. Хотя с учетом того, что в реальном сишном проекте ехал void через void и другие веселые касты для имитации ооп, то от статической типизации тут одно название.

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

Аноним 24/03/19 Вск 03:35:14 1369158417
>>1369157
Парсер съел звездочки возле void
Аноним 24/03/19 Вск 03:37:52 1369159418
>>1369157
Реальный сишный проект не пишется с нуля, а переписывается с прототипа что бы было очень быстро
Аноним 24/03/19 Вск 03:43:51 1369162419
>>1369159
Спасибо, кеп..Только зачем ты это написал? Я же пояснил выше, что не в embedded и на популярных архитектурах у C нет преимущств ни в чем. Даже в скорости.
Аноним 24/03/19 Вск 03:47:52 1369164420
>>1369162
Спасибо, Раст создавался под Файервокс, это тормозящее говно я удалил со всех устройств, в какой там ембедед вы еще хотите я не понимаю.
Аноним 24/03/19 Вск 03:53:52 1369168421
>>1369164
Я тоже FF не пользуюсь, но я гуглил бенчмарки последних версий FF, куда намержили подсистем на расте из servo. Так там все +/- как в хроме с производительностью
Аноним 24/03/19 Вск 03:57:21 1369169422
>>1369168
Не понятно твое копротивление, что ты хочешь то?
Аноним 24/03/19 Вск 08:06:23 1369194423
>>1369157
> ехал void через void и другие веселые касты для имитации ооп
kek тоже прям сразу в глаза бросилось, и потом когда программа падает непойми из за чего приходится консоль-логами фпринтами ловить.
Си,Сипп, жс три брата акробата, костыльные во многом и архаичные но каждый в своей области мэинстрим.
Аноним 24/03/19 Вск 08:22:11 1369199424
>>1369148
А нахуя мне раст? Вот потихоньку на Си пилю валидатор некоторых файлов текстовых. Процесс вполне идет, не вижу причин менять язык.
Аноним 24/03/19 Вск 08:26:36 1369200425
>>1369148
Мы тут угораем по духу старой школы, не мешай.
Аноним 24/03/19 Вск 08:34:28 1369202426
>>1369199
Ужасно. Валидатор текстовых файлов это не программа, кроторую сделал и люди пользуются, а задача для скрипта. Текстовые файлы постоянно меняются, и ты будешь на каждый пук пересобирать свой высер? Я уже не говорю, что там кода нагорожено, кроме тебя никто не разберется. Короче, тут два варианта, либо ты умный мудак, который специально делает такое говно защитить свою незаменимость, либо необучаемый колхозный идиот, которому лень изучить лучший инструмент под задачу.
Аноним 24/03/19 Вск 08:37:52 1369203427
>>1369202
А я и делаю для себя, в общем-то. С перспективой допила в нормальный редактор файлов такого формата.
Для души, короче. Ну и я необучаемый еблан, который как встретил Си, так на нем и застрял
Аноним 24/03/19 Вск 08:53:45 1369205428
>>1369203
>спойлер
Я тоже, лол, но тут нечем гордиться.
Хотя, по правде, писал и на вижуал бейсике, джаве, решетке, но в конце концов мне нужны в основном программы, и тут только сишка нормальная, а для скриптообразных задач вроде программ для работы через веб-парашу, решетка удобнее, я ебал пердолиться на сях с этими сетевыми запросами. И решетка по крайней мере хотя бы экзешники делает как у людей, работающие терпимо, хоть и медленнее.
Аноним 24/03/19 Вск 09:00:48 1369206429
>>1369205
>ебал пердолиться
Си язык не для тебя.
Аноним 24/03/19 Вск 09:06:31 1369207430
>>1369205
Ну в решетке анальное ООП, уже сложно.
Аноним 24/03/19 Вск 11:03:37 1369226431
>>1369148
Тыкал палочкой в раст, не понравилось что хелловорд весит два метра, а то и больше. Го тоже выдает столь же жирные хеловорды. Ди выдает чуть поменьше - 300 кб, но там сборщик мусора хоть есть, а что впихнули такого жирного в раст - не понятно. А на няшной всего два килобайта получается на tcc и 30 на gcc. Кресты не пробовал, но там вроде тоже всё няшно.
Аноним 24/03/19 Вск 11:17:13 1369233432
>>1369207
А сях тоже анальные функции, те же яйца, даже выглядит одинаково. Никто ведь не заставляет лепить функции на каждый пук, как и классы и тем более иерархии. Только дебилы лепят говно потому что оно есть в языке. Просто считай что название и скобочки это условный символы для обрамления кода, и всё, никаких проблем, ооп, функций, и прочего ненужного говна. Просто спроси себя: "Язык для меня, или я для языка? Кто главнее, кто кому подчиняется?" и будет ясно чмо ты позорное или человек.
Аноним 24/03/19 Вск 11:29:33 1369237433
>>1369226
Си это системный, машинный язык. Какой код написал, такой и получил.
Раст это веб-параша. Декларативная хуйня для определенных действий, а какой там будет код всем похуй. Вебмакакам похуй на код, у них хозяин богатый, если будет тупить/тормозить просто добавит еще серверов.
Аноним 24/03/19 Вск 13:01:15 1369262434
>>1369226
Херово тыкал, че. Я тоже удивился от бинаря в полтора мегабайта на одном принте в консоль. Когда как у С и С++ выходит по 8кб. Минутный гуглеж и раст тоже выдал бинарник в 9кб.
Аноним 24/03/19 Вск 13:18:44 1369274435
>>1369262
а на асме меньше 1кб, ибо main НИНУЖЕН нахуй, под меткой _start: отпечатываешься и милости просим exit 0) Эх, аж плакать хочется...
Аноним 24/03/19 Вск 13:33:51 1369281436
>>1369274
Да похуй как-то. Я лучше залинкую libunwind и стандартную библиотеку(те самые полтора мегабайта), получу производительность как на асме, чем буду экономить сраные полтора мегабайта, пердолиться в десять раз больше и получить ту же производительность. Полтора мегабайта, в которые входит куча полезных библиотек, которые нужны всем и всегда, это не 30мб у джавы, в которые напиханы даже аллах и твоя мамка
Аноним 24/03/19 Вск 13:48:00 1369287437
>>1369281
>это не 30мб у джавы
>почему вы так плохо живете?
>а хохлы еще хуже!
Это не ответ, а виляние жопой, лишь подтверждающее.
Аноним 24/03/19 Вск 13:56:21 1369290438
>>1369287
Т.е. неудобность разработки и отстутствие уверенности в сесурности написанного кода - это нормально, а 1.5мб бинарника - ето плохо. Если что, раст по умолчанию линкует все статически, в 1.5мб залинковано много всего - stdlib, libunwind, pthreads и другое. Если ты в сях юзаешь динамически эти либы,то ВНЕЗАПНО в памяти процесса будут загружены все те же либы. Да, они будут шариться с другими процессами, но все же.

Я уже написал, что в расте можно линковать динамически и тогда все будет как по дефолту в С
Аноним 24/03/19 Вск 14:15:42 1369301439
>>1369290
>Т.е. неудобность разработки и отстутствие уверенности в сесурности написанного кода - это нормально
"Уверенность" это мемчик дебилов, заменяющий мышление. Для таких есть Питон, уверенный язык, вот и нахуй иди в свой загон.
Аноним 24/03/19 Вск 14:27:50 1369306440
>>1369301
В расте на этапе компиляции работает статический анализ. Ты разве не юзаешь его в своих проектах? А санитайзеры? Если нет, то ты максимум лабу в универе пишешь и дальше общаться я смысла не вижу. Вообще все мои сообщения адресованы сеньерам, которые по какой-то причине еще не читали/думали над внедрением раста. ты явно не входишь в их число, так что можешь идти нахуй
Аноним 24/03/19 Вск 14:47:38 1369309441
>>1369306
Эй, тебе сколько растоадептов до понедельника набрать нужно?
Аноним 24/03/19 Вск 14:48:52 1369310442
Давайте ебаться в жопу, это удобно и практично. Вот ты не ебешься в жопу почему? Ебись в жопу, это модно.
Аноним 24/03/19 Вск 14:50:21 1369312443
>>1369306
Блять, ебанат, ты понимаешь что в си проектах люди юзают свои либы? А уж особенно эмбедщики, пишущие, можно сказать на совершенно другом языке. Твой Раст это пердеж для хипстеров-уебанов без образования. И не надо сейчас пукать что нинужно, лучше просто съеби.
Аноним 24/03/19 Вск 14:51:48 1369313444
Аноним 24/03/19 Вск 14:56:58 1369317445
Аноним 24/03/19 Вск 15:29:20 1369333446
>>1369310
>>1369313
>>1369317
>>1369309
>натужно шутим, потому что посуществу аргументы не придумываются

>>1369312
Про эмбедед я ни слова не писал, раст еще сырой для этого.
Про либы - я не понял, к чему ты это высрал. Либы можно не выкидывать, вызывать из раста сишные либы, а из С - растовские. Интероп же. unwind, stdlib и прочее можно не юзать, никто не заставляет. Просто это удобно и накладных расходов мало.
Аноним 24/03/19 Вск 15:37:22 1369336447
>>1369333
>аргументы
>растодебил перепутал тред
Аноним 24/03/19 Вск 15:37:43 1369337448
>>1369333
Чем жопу смазываешь?
Аноним 24/03/19 Вск 15:38:32 1369339449
>>1369333
Есть аргументы по существу, что не нужно ебаться в жопу?
Аноним 24/03/19 Вск 15:53:18 1369354450
>>1369339
Define ебаться в жопу в контексте программирования
Аноним 24/03/19 Вск 16:00:21 1369360451
>>1369354
В каком нахуй контексте, поехавший растодебил
Аноним 24/03/19 Вск 18:08:32 1369425452
image.png (150Кб, 1888x826)
1888x826
Ну и что с этим делать? Происходит это на обычном принтфе, при том какое-то кол-во этих самых принтфов проходят нормально, но после определенного такая хуйня.
Аноним 24/03/19 Вск 18:21:55 1369432453
>>1369425
Варианты:
- Долго и нудно дебажить код, выставляя memory breakpoints
- Запустить PVS-Studio или аналог
- Юзать санитайзеры (intel inspector, appverifier, встроенные в clang(если можешь скомпилить под него))
Аноним 24/03/19 Вск 18:36:01 1369443454
>>1369425
Как индекс может быть -1?
Аноним 24/03/19 Вск 19:50:36 1369488455
>>1368729
Действительно, затупил ночью. Чаю, все работает.
Аноним 24/03/19 Вск 19:59:09 1369499456
>>1369425
Ну так определи после чего именно хуйня начинается. Ты скорее всего где-то за буфер лезешь.
Аноним 24/03/19 Вск 22:50:08 1369609457
>>1369425
Так может ты нам принтф покажешь, а не кишки crt? Хотя у меня такое чувство, что ты как-то CRT ломаешь, а printf просто не повезло обращаться к сломанному.

>>1369443
> Как индекс может быть -1?
А почему нет? Тебе важно лишь не вылезать за пределы объекта при обращении к памяти.
char array[3] = { 'a', 'b', 'c' };
char ∗parray = &array[1];
printf("[0] = %c, [-1] = %c\n", parray[0], parray[-1]);
Аноним 25/03/19 Пнд 01:20:17 1369651458
Пиздец ^^^^^^^
Вы тоже это видите? 0_0
Аноним 25/03/19 Пнд 02:31:01 1369670459
Аноним 25/03/19 Пнд 04:45:44 1369684460
>>1369670
В обсуждаемом выше скриншоте анона это сделано, чтобы EOF (-1) можно было передавать в ctype-функции и получать при этом валидные результаты. Да, можно было прибавлять 1 везде при обращении к массиву, но пришлось бы писать комментарий об этом в коде, который обращается и при объявлении этого массива тоже пояснять, почему там элемент для '\0' по индексу 1. (Просто предположение; не знаю, чем там у Microsoft думают.)
Аноним 25/03/19 Пнд 09:41:47 1369719461
image.png (142Кб, 852x659)
852x659
Ебал матерей переводчиков.
Аноним 25/03/19 Пнд 09:44:10 1369721462
>>1369719
Согласен, на вид неоч.
Аноним 25/03/19 Пнд 09:44:16 1369722463
Круто
Аноним 25/03/19 Пнд 15:00:41 1369823464
Двач, можно ли как-нибудь покороче проверить равна ли переменная ряду значений? Не вот так: if(variable == 0 || variable == 1 || variable == 2){}, а как-нибудь так: if(variable == 0, 1, 2){}?
Аноним 25/03/19 Пнд 15:26:48 1369827465
>>1369823
для целочисленных значений на switch можешь заменить
Аноним 25/03/19 Пнд 15:50:00 1369833466
>>1369827
Неактуально для небольшого количества значений. Ещё больше кода будет.
Аноним 25/03/19 Пнд 15:53:25 1369835467
>>1369823
У gcc/mingw есть рейндж расширения стандарта для кейсов, можно писать типа
switch (val)
{
case 0 ... 2:
case 10:
//
break;
default:
//
break;
}
Аноним 25/03/19 Пнд 17:01:32 1369857468
Аноним 25/03/19 Пнд 17:21:19 1369863469
>>1369823
[code]if(value>0 && value<3)[/code] уже не катит?
Аноним 25/03/19 Пнд 20:43:57 1369968470
Аноним 25/03/19 Пнд 21:47:29 1370013471
да это какой-то тролль ведет к тому, чтоб сказать "сишка примитивна, пихтон могусчество"
Аноним 25/03/19 Пнд 22:30:06 1370034472
>>1370013
> сишка примитивна
Ну так и заебись же, легче того же питона в освоении.
Поделитесь хорошей либой-хедером с ассертами
Аноним 25/03/19 Пнд 22:57:01 1370059473
Openssl с 11/17 стандартами нормально работает?
Аноним 25/03/19 Пнд 23:41:58 1370095474
>>1370034
> либой-хедером с ассертами
assert.h, чего тебе там не хватает?

>>1370059
Ты можешь свободно линковать код на C11 и C89. Лишь бы стандартная либа в последнюю версию могла (в основном из-за всяких _Thread_local для errno и т.п., хотя оно и до стандартизации у всех было).
Аноним 26/03/19 Втр 05:49:10 1370157475
>>1370095
У openssl, наскока я помню, свой эррор хендлинг, и в потоки она не может, т.к. технология под std99 сделана, поэтому тут с 17 версией, где потоки уже дефолт могут понадобится костыли в большом количестве. С 11 все точно ок должно быть
Аноним 26/03/19 Втр 07:20:45 1370166476
>>1369823
>равна ряду значений
Вот что получается когда а программирование протекает женская логика.
Аноним 26/03/19 Втр 07:31:25 1370167477
Поясните какого хуя у меня вот эта хуйня пишет только последнее значение в массиве т.е для i=9 ?

for (i=0; i<9; i++);
{
printf("%c \n" , buffer);
}
Аноним 26/03/19 Втр 07:41:02 1370168478
Аноним 26/03/19 Втр 07:47:15 1370170479
>>1370168
Ебучий Абу проебал всю разметку. Так в чем проблема?
Аноним 26/03/19 Втр 07:53:02 1370172480
>>1370170
Скинь код полностью. Тебе нужно вывести 0-9 элементов массива в буквенном виде?
Аноним 26/03/19 Втр 08:05:53 1370179481
>>1370172
#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 и все нормально работает. В чем дело?
Аноним 26/03/19 Втр 08:09:20 1370181482
Аноним 26/03/19 Втр 08:12:34 1370182483
Аноним 26/03/19 Втр 08:19:10 1370184484
>>1370179
#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;
}
Аноним 26/03/19 Втр 08:19:35 1370185485
где в хкоде переключиться на х86 архитектуру?
Аноним 26/03/19 Втр 08:19:41 1370186486
Аноним 26/03/19 Втр 08:20:18 1370187487
ну короче ты понял, абу скобки кроет короч
Аноним 26/03/19 Втр 08:22:09 1370189488
>>1370167
Переменная buffer содержит адресс массива, в принтфе ты 9 раз выводишь первый байт адреса в виде символа. Иди читай документацию по принтфу.
Аноним 26/03/19 Втр 08:22:52 1370190489
>>1370181
Это куда? У меня же и так printf ("%c \n", buffer[и]); и по условию он должен и так меняться.
Аноним 26/03/19 Втр 08:25:23 1370191490
>>1370189
Я не на весь массив ссылаюсь, а на i-й элемент.
Аноним 26/03/19 Втр 08:27:34 1370192491
>>1370189
У него есть там ([это]), просто разметка не позволяет сюда вывести.
Аноним 26/03/19 Втр 08:28:01 1370193492
Аноним 26/03/19 Втр 08:28:49 1370194493
>>1370192
>У него есть там
Не оправдывай малолетнего олигофрена, нет там нихуя.
Аноним 26/03/19 Втр 08:30:17 1370196494
Аноним 26/03/19 Втр 08:31:19 1370197495
>>1370196
>КУДАХ БАБАХ КУКАРЕКУ
As expected.
Аноним 26/03/19 Втр 08:33:53 1370198496
У вас всегда такие >>1370197 ебанутые в треде?
Аноним 26/03/19 Втр 08:34:19 1370199497
>>1370197
Бля, поцан хотел просто помощи получить.

Ну чтож помянем.
Аноним 26/03/19 Втр 08:44:02 1370204498
image.png (38Кб, 1204x390)
1204x390
Аноним 26/03/19 Втр 08:47:50 1370205499
>>1370204
И где тут решение? Должна была вывестись текущая дата.
Аноним 26/03/19 Втр 08:55:17 1370207500
изображение.png (15Кб, 796x389)
796x389
Прекращу этот цирк что-ли.
Аноним 26/03/19 Втр 09:38:37 1370220501
Читаю и так и не понимаю зачем нужны указатели. Думал может прата почитаю и пойму но там какая-то словесная дрисня в стиле указываем указателем на указываемое. Ехал масло маслянное. Возникает ощущение что переводчик поклал и перевел транслитом вообще не вдумываясь написанное.
Аноним 26/03/19 Втр 09:40:33 1370221502
Пиздец говнокод блять. Выведи уж тогда через &buffer[i * 1] если ты уебан со скриптопарашей головного мозга
Аноним 26/03/19 Втр 09:53:14 1370226503
Screenshot2019-[...].png (131Кб, 1080x1920)
1080x1920
>>1370207
Это не то что мне нужно. Мне нужно выводить по 1 элементу массива, а не весь целиком. Вот так надо.

Да и ты не решил проблему, а просто обошел ее мимо. Почему цикл for не работает как надо?
Аноним 26/03/19 Втр 09:56:14 1370227504
>>1370220
>переводчик
Slaveянин, please.
Аноним 26/03/19 Втр 09:56:44 1370228505
изображение.png (17Кб, 861x422)
861x422
>>1370226
В смысле блять не работает как надо? А как тебе надо?
Аноним 26/03/19 Втр 09:56:47 1370229506
>>1370226
Потому что у тебя ошибка в ДНК
/тред
Аноним 26/03/19 Втр 09:57:21 1370230507
>>1370228
Грешно смеяться над юродивым, ананчик.
Аноним 26/03/19 Втр 09:57:31 1370231508
>>1369237
>Вебмакакам похуй на код, у них хозяин богатый, если будет тупить/тормозить просто добавит еще серверов.

Вебмакакам как раз не похуй - их код запускается у конечных юзеров в том числе и на некромобилочках с засраным ведроидом пятилетней давности, и если у их заказчика клиенты не закажут доставку сраной пыццы, потому что зависло на смартфоне - то их ждет долгая анальная неделя.
Аноним 26/03/19 Втр 09:59:35 1370233509
>>1370226
Блять идиот, потому что тебе нужно вывести элемент n по адресу &buffer[n1] (n++) или str (str++), а ты пытаешься вывести в каждой итерации весь массив со спецификатором const char
Короче иди нахуй
И да если ты хочешь чему-то научиться, в первую очередь выбрось принтф из своего кода
Аноним 26/03/19 Втр 10:00:56 1370234510
Аноним 26/03/19 Втр 10:01:22 1370235511
>>1370233
И как мне блять отлаживать?
Мимо
Аноним 26/03/19 Втр 10:02:28 1370237512
Аноним 26/03/19 Втр 10:19:41 1370245513
>>1370237
Я Дао постигнуть хочу, Учитель научи.
Аноним 26/03/19 Втр 10:22:41 1370247514
>>1370245
Это какой-то токсичный хуесос тут семенит.
Аноним 26/03/19 Втр 10:23:00 1370248515
Аноним 26/03/19 Втр 10:26:07 1370249516
>>1370229
>>1370221
>>1370230
>>1370233

Какого хуя в треде одни агрессивные уебаны? Пришел новичок спросить в тред, а его вместо помощи хуями облажили. Хуею с треда.
Аноним 26/03/19 Втр 10:27:19 1370251517
>>1370248
Хорошая чмоха, послушная.
Еще хуй мне отсосать не забудь.
Аноним 26/03/19 Втр 10:27:46 1370252518
>>1370249
>облажили
Уроки-то сделал?
Аноним 26/03/19 Втр 10:28:26 1370253519
>>1370249
с чего ты хуеешь, семен? Тебе сказали какая и где у тебя ошибка, уже даже притащили решение
Аноним 26/03/19 Втр 10:30:31 1370255520
>>1370251
я даже написал в стиле твоего дохлого питона чтобы ты глазьки свои бедьненькие не сломал уебан не способный поставить нужный спецификатор в принтф
Аноним 26/03/19 Втр 10:32:47 1370257521
image.png (173Кб, 1152x864)
1152x864
Вы это видите, blyad??? Демоническое \t во всплывающем посте в отличие от поста на месте в ленте.
Аноним 26/03/19 Втр 10:34:04 1370258522
>>1370255
Теперь глотай, пидарок.
Аноним 26/03/19 Втр 10:38:16 1370260523
>>1370226
>>1370182
У тебя точка с запятой стоит в for перед printf.
Аноним 26/03/19 Втр 10:43:26 1370261524
>>1370167
>>1370260
шоб мимопроходящий сразу охватил суть срача)
Аноним 26/03/19 Втр 10:48:00 1370262525
>>1370227
Причем тут это? Автор дебич берет тему указателей, которая и так сложная для нубов, а потом говорит вот есть многомерные массивы давайте еще тут про указатели чтобы было окончательно непонятно если вдруг было понятно, и тут же еще начинает затирать за уровни косвенности. Вот зачем так делать?
Аноним 26/03/19 Втр 11:00:40 1370270526
>>1370262
>читает в переводе
>кукарекает
Типичный русский типичен.
Аноним 26/03/19 Втр 11:02:24 1370272527
>>1370262
Что нахуй может быть непонятного в указателях? Указатель = переменная с адресом. Все. Что вы там сложного находите блять?
Аноним 26/03/19 Втр 11:03:45 1370274528
>>1370248
Извините, а в чем заключается сакральный смысл использования write() вместо printf() ?
Аноним 26/03/19 Втр 11:05:45 1370275529
>>1370272
>Что вы там сложного находите блять?
Очевидно же лишнюю хромосому
>>1370274
Да.
Аноним 26/03/19 Втр 11:10:50 1370276530
>>1370274
Не вместо, а когда в машинном (не человекочитаемом символьном) виде надо данные в голову файла загнать, например.
Аноним 26/03/19 Втр 11:13:27 1370278531
>>1370272
>Что вы там сложного находите блять?
Нубы не мыслят критериями адресов в памяти.
>>1370270
>>1370275
Хуй соси, токсичная манька. Тебя видимо питоноеб с утра выебал и поэтому ты такой агрессивный.
Аноним 26/03/19 Втр 11:13:58 1370279532
Аноним 26/03/19 Втр 11:14:54 1370280533
>>1370278
>категориями адресов в памяти
пофиксил
Аноним 26/03/19 Втр 11:18:21 1370282534
изображение.png (662Кб, 700x525)
700x525
Аноним 26/03/19 Втр 11:22:54 1370284535
>>1370282
2 из 3, деанонизатор. 1370278 не я писал.
Аноним 26/03/19 Втр 11:23:57 1370285536
>>1370282
Только не надо Сишный пост с Пикабу сюда тащить. Мне за него пиздец стыдно)
Аноним 26/03/19 Втр 11:41:22 1370291537
изображение.png (32Кб, 498x315)
498x315
>>1370284
>не я писал.
Все вы одинаковые.
>>1370285
>)
Обосрался, маленький, еще и обмазался весь.
Аноним 26/03/19 Втр 11:50:39 1370292538
Хочу слинковать несколько объектных файлов, написанных на разных языках, в один исполняемый файл. Работаю под виндой. Какие есть аналоги ld и make для винды с возможностью задать скрипт линкера в том же формате, в каком его пишут под линуксом? Cygwin не нужен.
Аноним 26/03/19 Втр 12:03:29 1370300539
>>1370220
тащемта все легко
вот у тебя есть переменная допустим
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

еще можно создавать указатели на фукнции, и даже массивы указателей на функции, и можно даже их вызывать вместо функций, но я давно не пишу на си поэтому уже слабо представляю какой в этом смысл.
короче поинтеры оч важная хуйня в ассемблере. выделил в каком-то месте память, запомнил его поинтером, а потом не заебываясь снес поинтер и пошел дальше своими делами заниматься.
Аноним 26/03/19 Втр 12:03:43 1370301540
>>1370291
да похуй, и так перекат скоро
Аноним 26/03/19 Втр 12:10:55 1370309541
>>1370301
>похуй
Принято, в новом треде первыми же постами полный деанан.
Аноним 26/03/19 Втр 12:14:29 1370313542
>>1370309
Хорош деанон, когда я сам ни капли не скрываюсь в тех местах, где подписан PolazhinetsA. Держи задачку посложнее. Тащи сюда фотки моего хуя с Reddit.
Аноним 26/03/19 Втр 12:15:16 1370315543
>>1370313
>хуя
Слишком громкое название для твоих 12 см.
Аноним 26/03/19 Втр 12:20:21 1370318544
>>1370315
Твоя мать полметровую линейку не тем концом приложила, вот и выслушиваешь потом "прикинь, сынок, спала с одним аноном, у него 12см, а ощущения на все 38"
Аноним 26/03/19 Втр 12:25:35 1370322545
>>1370274
printf это не функция а макро алиас главной __printf__ функции. Вызывая прототип принтф, а потом и сам его сишник, компилятор только форматирует текст и понимает, что вызвана stdoutput часть большой __printf__ функции, затем, получив отформатированный однострочный массив, выводит его посимвольно. С write та же история, только памяти она потребляет в несколько раз меньше и сразу выводит посимвольно. Ах да, printf еще запускает функции рекурсивно, а аутпут от write будет только из зоны видимости.
Ну и главный сдешний миф, что мол принтф хорошая вещь для дебага - полнейший бред. Большая часть ошибок на любом этапе работы с большинством C проектов из-за хуевого железа и хуевой памяти, с чем принтф абсолютно не поможет, а только усугубит проблемы
Аноним 26/03/19 Втр 12:30:46 1370326546
>>1370220
я с праты тоже сразу ничего не понял, и забил, потом покукарекал в гейос, но там все еще хуже (субЪективно)
Аноним 26/03/19 Втр 12:38:30 1370329547
>>1370270
петуххохол закукарекал захрюкал
Аноним 26/03/19 Втр 13:14:46 1370349548
перекат Аноним 26/03/19 Втр 13:18:28 1370350549
>>268534
>>268534
>>268534
>>268534
>>268534
Аноним 26/03/19 Втр 13:20:33 1370354550
>>1370272
> Что вы там сложного находите блять?
То шо звездочка тама используется и при объявлении указателя и для получении значения по адресу, помимо ее математической функции. Запутаться можно.
Аноним 26/03/19 Втр 13:21:33 1370355551
>>1370350
хуйня какая-то получилось)
Аноним 26/03/19 Втр 13:46:39 1370365552
>>1370355
>хуйня какая-то получилось)
Вся твоя жизнь в трех словах.
Аноним 26/03/19 Втр 13:55:14 1370367553
Аноним 26/03/19 Втр 14:06:48 1370369554
>>1370322
А как же хуевый код...
Аноним 26/03/19 Втр 14:46:05 1370385555
>>1370367
Даже ботом быть лучше чем тобой, ананчик.
Аноним 26/03/19 Втр 14:58:57 1370394556
>>1370385
Только если ты написан на сишечке.
Аноним 26/03/19 Втр 15:04:02 1370398557
>>1370300
>вот у тебя есть переменная допустим
>char anus со значением "jopa"
>и есть переменная-указатель
>char (star)dirka
Спасибо, после объяснения уровня б стало чуть более понятно.
Аноним 26/03/19 Втр 15:43:44 1370422558
>>1370394
>ты написан на сишечке.
Ты знал ^_^
Аноним 26/03/19 Втр 17:01:23 1370454559
Аноним 26/03/19 Втр 18:50:32 1370495560
>>1370279
Максимально нечитаемый код, форматирование do..while так вообще напоминает шутки о параллельном программировании. И коды у тебя неправильные.

>>1370454
ld из комплекта mingw. В этом треде где-то вверху обсуждали.
ПЕРЕКАТ Аноним # OP 26/03/19 Втр 18:56:57 1370499561
Аноним 26/03/19 Втр 20:39:08 1370545562
>>1370495
>И коды у тебя неправильные
Этот момент не понял...
Аноним 27/03/19 Срд 00:16:47 1370640563
>>1370545
Ну я нормально не смотрел, но: сжатый-разжатый исходный код самой программы превращается в мусор. Размер минимального кода более чем один бит, хотя пробел должно было бы в один бит свернуть. Размер кода (вроде бы) не лимитируется - попробуй пожать и разжать текст, в котором частоты символов соответствуют последовательности фибоначчи (abccdddeeeeeffffffff ну ты понел).
Аноним 27/03/19 Срд 00:58:22 1370652564
>>1369148
Ну и нахуй он нужен? На сях сейчас пишут только системщину и возможности языка отлично позволяют это делать без каких либо проблем. Еще раз повторяю, нахуй нужен раст то?
Аноним 27/03/19 Срд 09:38:35 1370705565
Почему все так плохо с вводом-выводом текста? Вместо нормальной библиотеки ввода-вывода куча printf, gets/puts, fgets/puts, gets_s/puts_s. Чтобы ввести строку текста надо знать 3 оператора с ньюансами их работы по выделению памяти, работе с невидимыми символами и еще всяким вуду. Зачем? Кто там пилил с11, это же полный пиздец. В итоге простая вещь как ввод строки превращается в мозгоебство. Вот нахуй так жить?
Аноним 27/03/19 Срд 10:09:46 1370712566
Аноним 27/03/19 Срд 18:14:55 1370916567
Аноним 18/04/19 Чтв 16:38:06 1383475568
>>1362799 (OP)
https://pastebin.com/THwTuhqf
Есть код реализации стека, вроде как все понятно, но зачем тут указатель на указатель? Объясните поподробней, если можете, как он тут используется.
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов