В тред призываются программисты, чтобы ответить на простой вопрос. Нахуя в ебучем C++ существуют ссаные указатели звёздочка и ссылки &, если передать значение хуйни в другую функцию можно без этого говна? С примерами, пожалуйста. В шараге заставляют передавать всякое говно по указателям, а я нихуя не понимаю как это работает И нахуя это нужно, если всё работает без указателей. А ещё нахуя нужны прототипы функций и что за говно мы указываем в скобочках при (а) вызове функции и (б) при написании функции ну после main, когда пишем сам код? Все учебники пишутся пидорасами, которые не могут объяснить всё человеческим языком, поэтому вся надежда на вас.
Кстати, посмотрите на код пожалуйста. http://ideone.com/jS4h5M Сами видите что всё отлично передаётся без указателей. И второй вариант. http://ideone.com/3PB9YW Я добавил "x" в прототип функции, но это никак не повлияло на работу кода. НО если я уберу "x" из круглых скобок в самой функции, то всё пизда пизда огорчение ошибка ничего нихуя не работает. И третий вариант. http://ideone.com/WcXLJ1 Я заменил "x" на "y" в прототипе функции, но код всё равно работает.
>>139516860 (OP) >Кстати, посмотрите на код пожалуйста Если декларируешь функцию, то имена аргументов не обязательно, нужны только типы. Когда пишешь дефиницию, то без имен аргументов уже никак.
На первом курсе горело дико с этих указателей, ещё и преподша старая заставляла прогать НА ЛИСТОЧКАХ. Простой пример: надо тебе написать функцию, которая свапает две переменные, напиши.
>>139517281 Тогда вообще какие проблемы. Хз на самом деле, какие там ограничения у твоего контроллера, а на x86 паковать код было дико модно, особенно во времена мсдосов. Производительность по звезде идет, конечно, зато бинари компактные.
>>139517518 Ничего, что хуй86 есть мму и страницы памяти. Можно назначить обработчик на прерывание отсутствия страниц и распаковать её по требованию, а затем продолжить выполнение как ни в чем не бывало? У меня нет ММУ, а TCP/хттп хочется придется клепать велосипед с минимальным функционалом самому.
>обработчик на прерывание отсутствия страниц и распаковать её по требованию Хех, нафига прерывание? Распаковал код, вызвал код. Можешь даже буфер не чистить, следующая распаковка всё равно перетрет.
>>139518012 А ничего, что распакованый код выполняется нелинейно и вызывает другой код не из этой страницы. Как это обработаь не из ММУ? патчить любой переход неким обработчиком, который видя вызов не из набора видимых страниц заменяет одну из видимых страниц на требуемую? На ну нахуй такой пердолинг не для меня.
Указатели на переменную / взятие адреса? Ну, навскидку приходят варианты их пользы: можно изменять значения переданных переменных внутри функции. Создание связных списков. Алсо, при передаче аргументов они дублируются в стек, при передаче указателей такой хуйни нет. Оптимизация кароч.
Не знаю как в ваших плюсах (да и в чистом Си как щас тоже уже не знаю, последний раз прикасался к ним много лет назад), но в Си вообще и строки и массивы ебашутся через указатели.
>>139518489 > вызывает другой код не из этой страницы > патчить любой переход Зачем. Собираешь прям так, чтобы вызовы толстого кода шли через распаковщик.
>>139517959 блять сука дибил ебанный написано же функцию. если тебя интересует, зачем писать функции почитай блять про ооп и подумай, будет ли тебе интересно 100 раз писать 6 строк кода или один раз написать функцию и потом писать 1 строку для выполнения задачи сука школьинк ебанный умник тут нашелся блять
>>139516860 (OP) Когда ты передаешь в функцию объект по значению (без указателей или ссылок), то функция получает копию объекта. Если объект очень тяжелый, то копирование займет некоторое время. Если ты передаешь по ссылке или по указателю - то копирования не будет, и ты сэкономишь машинное время. смотри пример - http://ideone.com/3qHWLQ Так же, очевидно, что если изменить в функции копию, то изменения первоначальный объект не затронут, а если по ссылке или указателю - то изменения отразятся на первоначальном объекте.
>>139516860 (OP) ПТУшник, слушал бы внимательно препода, знал бы ответ Указатели и прочая ебола нужны для низкого уровня управления памятью, ты, допустим, указываешь на конкретную первую яйчеку матрицы, а не на 10ую, 2ую, последнюю.
Далее, это объектный язык, а значит он может вмещать в себя еба функционал, типа y=5x, но ты не можешь определить х в начале программы, либо сам вписать определение, х будет известен потом, когда-нибудь*, и вот когда он будет известен, тогда, благодаря ссылочкам выражение сможет быть определено.
Соибраюсь пойти тестером, или вебмакакой, имея почти 0ые знания без преувеличения, меня очковтирателем возьмут чай подавать? Сколько вообще запрашивать за работу? 15-20-30-40? Не дс, но миллионик.
>>139519529 я пошел на бесплатные куры при местной конторе, за три месяца научили, уже почти год работаю, получаю 500 долларов в мухосранске с средней зп 150, пишу на рельсе
>>139519728 вуз вообще не при чем, разные конторы когда им нужны работники за еду, а таких нету, открывают разные курсы, после которых лучших(в моем случае тех что остались), забирают себе. Но в общем зп неплохая и опыт
>>139519728 просто загугли айти компании в своем мухосранске и ищи на их сайтах разные курсы, они как правило бесплатные, НО: - скорее всего будут рать с третьего курса - тебе сначала дадут тесты на что-то связанное с твоим языком и на английский
>>139516860 (OP) Герберт Шилдт C++: базовый курс, 3-е издание = C++ from the Ground Up Third Edition. — М.: «Вильямс», 2012. — 624 с. Просто почитай. И всё поймёшь
>>139519852 Блин, там же конкуренция будет просто ппц, всякие хипстеры с математических факультетов просто поржут над чуханом который не может в матан... Придется делать клизму перед походом...
>>139520066 Я тебе вангую, что до конца 2\3 сольется, потому что под конец будут давать делать проекты, на которые нужно потратить много часов, потому возьмут тех что останутся, если у тебя нету мозга, но есть много свободного времени и немного упорства - можешь свободно искать и идти
>>139516860 (OP) int zalupa_kentavra(int x); и int zalupa_kentavra(int); равносильны. Так как имена аргументов, при объявления прототипов являются необязательными. >НО если я уберу "x" из круглых скобок в самой функции, то всё пизда пизда огорчение ошибка ничего нихуя не работает. Покажи синтаксис, нихуя не понятно, что ты имеешь в виду. >И третий вариант. http://ideone.com/WcXLJ1 Я заменил "x" на "y" в прототипе функции, но код всё равно работает. Прототип функции это лишь ее объявление. Ты объявляешь функцию, т.е. ее тело, то, что она возвращает, плюс аргументы с которыми она будет работать. Лишь потом ты ее определяешь. Прототип функции можно сказать это ее объявление, а вот полностью описанная функция а не прототип это ее определение. Т.е. Объявление int zalupa_kentavra(int x); Ты указываешь, что семантика функции имеет вид функция zalupa_kentavra возвращает переменную типа INT потому что int zalupa_kentavra(int x); жирным выделено возвращаемый тип и принимает переменную INT как аргумент функции жирным выделен аргумент int zalupa_kentavra(int x);
Т.е. в прототипе указанно, что функция ждет один аргумент типа INT, с++ по хую, как у тебя названа эта переменная типа INT, будет это ничего как в http://ideone.com/jS4h5M, будет это x в http://ideone.com/3PB9YW или y в http://ideone.com/WcXLJ1. Передача аргументов по значению и по ссылке, вот, что надо понимать. Но об этом позже, если ОП тут сидит.
>>139520946 Что ты потянешь? Философию через бутылку на первом курсе? Учится на программиста - не знает зачем указатели, это пиздец просто, словно не знать зачем нужны цифры в математике
А если у меня сторонняя функция будет получать значения из разных переменных переменная одна, то что писать в прототипе? Просто int funktion(int) без имени переменной?
>>139520256 >>139521180 Прочти, что я тебе тут написал. >будет получать значения из разных переменных переменная одна Как у тебя из разных переменных, а переменная одна, нихуя не понятно.
>>139516860 (OP) >Нахуя в ебучем C++ существуют ссаные указатели звёздочка и ссылки & C++ - достаточно древний по компьютерным меркам язык, и создавался в те годы, когда каждый байт был на вес золота. Сссылки и указатели - это всего лишь еще один способ организации данных в памяти. Фишка его в том, что он максимально приближен к организации данных в памяти компьютера.
Ну и самое главное: из всех высокоуровневых языков С++ самый низкоуровневый. Ближе его к "железу", пожалуй, только ассемблер.
>>139516860 (OP) ГВОЗДЬ ТО ЗАБИТЬ СМОЖЕШЬ, ПРОГРОМИЗД? @ ПРИНТЕР НЕ ПЕЧАТАЕТ, ПОЧИНИ @ У МЕНЯ КОНТАКТИК ЛАГАЕТ, ПОЧИНИ @ У МОНИТОРА БИТЫЙ ПИКСЕЛЬ, ПОЧИНИ! @ ВСЕ ТОРМОЗИТ, ПОЧИНИ! @ АЛЛАХ НЕ ОТКРЫВАЕТСЯ, ЧИНИ!!!
>>139516860 (OP) 1. Указатель вводит в язык понятие адреса в памяти. Две большие разницы когда ты передаешь саму переменную в функцию и адрес где эта переменная хранится. Принимая адрес(указатель) функция имеет возможность работать с область памяти где хранится переменная из вызываемой функции. И как следствие если мы ее изменим, то это "увидит" вызывающая функция 2. Ссылки имеет такое же назначение, но они более высокоуровневые 3. По поводу функций. Функция это именованный кусок кода, в котором можно задать параметры с изначально неизвестными значениями. Когда мы объявляем функцию то в скобках указываем какие параметры функция имеет. Для каждого параметра указывается тип и имя. Когда мы вызываем функцию, то в скобках указываем переменные/литералы, которыми будут инициализироваться параметры функции. 4. Прототип это способ сказать "Функция вот с таким именем и с такими параметрами будет, но потом. Пока я не говорю, что она будет делать, а объявляю только имя и параметры". Здесь в скобках нужно указать параметры, но поскольку мы не пишем здесь тело функции, то и имена у параметров указывать не обязательно.
>>139521599 Указатель может быть NULL, а ссылка - нет. Попытка разыменовывать NULL гарантированно роняет приложение и на практике это используется в качестве кода ошибки.
>>139516860 (OP) Может тебе не стоит на программиста учиться? А то столько даунов в проффессии развелось, что скоро зарплаты как у охранника в петерочке станут.
>>139521213 Ну блять, переменная это участок памяти, передавая переменную в функцию ты копируешь и передаешь значение, указатель это адрес участка памяти, передавая адрес ты не копируешь значение, а используешь участок памяти, то есть в первом случае изменив значение переменной в функции ты изменишь скопированное значение, а во втором случае - исходное. void do(int a) { a = 10; } void doptr(int a) { a = 10; } int a1 = 5; do(a1); // После этого a1 все равно будет равен 5 doptr(&a1); // после этого a1 будет равен 10
>>139521738 >> #define сторонняя функция >Которая не main. Новые определения, дамы и господа!
> #define из разных переменных переменная одна В main две переменных, сначала действия производятся с одной, потом с другой. Да хоть с миллионом, хоть с массивом, хоть с полем структуры, пока с типами всё в порядке это будет работать.
>>139521800 >столько даунов в проффессии развелось, что скоро зарплаты как у охранника в петерочке станут Тащемта, уровень "джуна" - это уровень нептуаколледжа. В университетах-то готовят инженеров-программистов.
>>139521921 Какая разница кого там готовят, если приходят дауны, незнающие по какой стороне клавиатуры стучать. Вот оп например. Ну что может быть непонятного в указателе на участок памяти? Это два предложения в книге нужно вдумчиво прочитать.
>>139522205 >вдумчиво прочитать. Вот поэтому все всё хотят сразу и быстро. Не все вундеркинды и хорошо, когда у тебя есть наставник. Но мне все равно кажется что >>139521985
>>139521116 > Учится на программиста - не знает зачем указатели Пидор-Спольски в свое время неплохо на эту тему в своем блоге прошелся. Типа нынче в университетах учат на джаве и питоне (разумеется он про свои родные американские), это мол хорошие языки, но у них есть одна проблема: они недостаточно сложные чтобы эффективно отфильтровывать тех кто не может в кодинг.
В С/С++ такие как ОП получают по ебалу указателями, в итоге даже простейшие программы у них падают и глючат, в итоге они не могут осилить и со слезами убегают из профессии.
В джаве такие вполне доучиваются до конца и пополняют ряды говнокодеров, демпингующих, портящих рынок труда и высирающих совершенно адово говнище которое потом другим придется поддерживать.
>>139522690 Если бы в твоей шараге была теория формальных грамматик то ты бы знал, откуда такое различие между местом ошибки и местом ее обнаружения компилятором. Но у вас такого небось не было, а если и было - ты это проспал, ибо СКУЧНА МАТАН КАКОЙ-ТО ТУПОЙ, ЛУЧШЕ ПОКАЖИТЕ КАК САЙТИКИ НА ПОХАПЕ ПИСАТЬ.
>>139522443 Надеюсь, что ты проебал & перед y, тогда да.
>>139522690 Ну может ему еще за тебя и код написать и алгоритм разработать, а ты только ТЗ выдавай. "Вот там короче есть база какая-то запили мне сайтец чтобы заебато было"
>>139522918 А что тут непонятного? Взяли адрес переменной, дали его функции. Функция взяла значение, лежащее по этому адресу, помножила его на себя, и новое значение по этому же адресу положила.
Дальше программа заглянула в переменную и напечатала хранящееся там значение.
>>139522918 в случае с void foo(int x) переданная переменная (а точнее ее значение) копируется. поэтому внутри foo будет изменена копия. а в случае void foo(int *x) передается адрес памяти а не значение. поэтому ты выполняешь действия с тем же участком памяти. и после завершения выполнения foo() значение в памяти будет изменено
>>139522718 А на хуй уже успел послать. Я тебе русским языком объяснил, почему и как. За исключением передачи аргумента в функцию по ссылке и по значению. Читай, время жизни переменных(там будет и про функции и про области видимости и т.д.) и читай передача аргумента в функцию по ссылке и по значению. >>139522918 Так понятнее? http://ideone.com/N5KWSe Почитай про указатель, поймешь. http://ideone.com/SfQARL
Про указатели и ссылки и их различие прекрасно написано на stackoverflow, как и еще про кучу других популярных тем. Но оп-макака же не может в английский. Я хз честно, зачем вы без английского в программирование лезите.
>>139523249 Потому что адрес это и есть число. К счастью, у нас плоская модель памяти, поэтому каждый байт тупо имеет свой номер. 0x00009C40 это просто формат записи в 16-ричной системе счисления. Это же число ты можешь записать как 40000
>>139523758 Ну так. &y это адрес, да. И его можно представить как некоторое число. Я сейчас вообще сожгу твой мозг, но указатели можно даже складывать как обычные числа. Например у тебя есть массив интов, взяв указатель на N элемент и прибавив к нему K получишь указатель на элемент на позиции N+K (если не выйдешь за границу массива).
Кто то уже ответил но мне похуй, указатели и ссылки для экономии памяти, шоб не создавать кучу копий переменной. Передаешь в функцию только адрес &huynya а не копию хуйни, понимаешь? Обьект может занимать дохуя памяти а ссылка на него байты.
Ссылка константна, указатель нет. Но они оба хранят адрес обьетка.
>>139516860 (OP) простое правило жизни: если тебе что-то нахуй не нужно, дак и не используй это к программированию это тоже относится не нужны тебе указатели - ну и ладно, не используй
>>139523943 Да не бывает такого. У каждого заказчика обязательно будут какие-то свои хотелки, под которые придется что-то допиливать.
В итоге придется либо брать низкоуровневый движок (фактически не движок а просто библиотеку полезных функций) и собирать из него, либо брать йоба-движок который сделае за тебя 90%, а потом адово бороться с ним в попытке заставить его делать оставшиеся 10%, которые его авторы не предусмотрели.
>>139523436 int t = NULL; // указатель указывает на область памяти по адресу 0x00000000 int &k = t; // ссылка ссылается на область памяти, на которую указывает указатель
Вообще говоря нет ничего криминального в ссылании на адрес 0. Просто есть конвенция, что нулевые указатели указывают "в никуда" и вдобвок ось делает страницу по адресу 0x00000000 не читаемой/писаемой. Поэтому при попытке обращения к ней вылетит эксепшен. В каком-нибудь msdos-е по адресу 0000:0000 лежит таблица прерываний и с ней надо работать через NULL-овые указатели. Так-то.
>>139524084 Самый популярный вроде язык нынче (посчитано по всяким индексам популярности на стековерфлоу и количеству кода на гитхабе). И гораздо более простой. И никакой тебе ебли с указателями.
>>139524011 Добавлю специально для опа. Эта экономия может быть неочевидна для инта, так как размер инта и размер указателя равны (ну или почти равны, в зависимости от архитектуры и всякой хуйни). Но если вот вместо простого инта будет какая-то сложная структура с кучей полей то разница между передачей сотен байт структуры и несколких байт указателя уже будет заметна.
>>139524335 Еще указатель используется как "выход функции" и для обращения напрямую к регистрам какой-нибудь железки. Что вы все про экономию памяти заладили.
>>139524559 а куда шел? ты уверен что тебе вообще образование нужно? Посмотри вокруг, добиваются чего-то не образованные, а упорные, не умные, а прошаренные, не с корочками о высшем образовании, а с корочками помощника главы администрации.
>>139524543 >>139524571 Ну бля, я серьезно. Смотрю вакансии в своем мухосранске, совсем не густо, и везде опыт 1-3 года. А вот на жабу дохуя, правда там тоже куча всякого говна сверху.
>>139524756 Я тоже серьезно - для крестов есть готовые библиотеки для всего практически, есть такая хороша кроссплатформенная штука как куте, хоть игры для айос на нем пиши.
>>139524821 Возможно, ходил я в парочку контор которые ентерпрайз на яве делают, в одной сразу FX в ебало, а в другой JSP и хитровыебанный запрос под ноги. Хотя я сразу сказал, что нихуя не знаю и на пол дня, они согласны были.
>>139525198 Ну в вакансии же указывают список технологий которые надо знать? Изучи их, поищи типичные вопросы на собеседованиях по ним. Если ты все будешь знать хоть как-то то на опыт не посмотрят.
>>139524756 оп вкатывайся в веб. Фрилансь верстай сайты, учи вордперс джумлу ноджс. Я токо за щет этого и выживаю. Ну еще есть комерческий проэет на 5к баксов, но я с знакомым работаю. Дислоцируюсь в хохляндии
>>139524958 В этом http://ideone.com/fET1AK примере функция void foo() имеет тип возвращаемого значение void, т.е. не возвращает ничего, да и return не было, но это не значит, что она не может изменять значение переменной, которая была переданная этой функции как аргумент. И переданная она была через указатель. Функция не вернула ничего, но она изменила значение int x = 2; Вот если передать в функцию void foo() аргумент по значению, а не по ссылке, то переменная int x = 2; на выходе из функции свое значение не поменят. Сравни http://ideone.com/TagL8u и http://ideone.com/fET1AK. Вот если сейчас ты внимательно не поймешь этого, то пойди проспись и прочитай опять. Это один из вариантов ответа на твой вопрос зачем передают в функцию переменную по указателю или просто по значению.
>>139525359 Потому что ты хуйню полную посчитал. У тебя сумма = сумме возвращаемого результата функций. Но ты из них ничего не возвращаешь оператором return, в таком случае по дефолту вроде ноль возвращается. Ты в них меняешь значения переменных A и B, но потом их значения не используешь.
>>139525611 Что ты блядь несешь, какая ссылка? Ты по указателю меняешь значение переменной, переданной в функцию. Но в результате складываешь не эти значения, а то что функция возвращает, а она у тебя ничего не возвращает.
>>139525659 Нет. Тебе надо либо возвращать из функции значение *x, либо в переменную summa складывать не возвращаемые значения, а A и B (которые после вызова твоей функции таки изменятся и примут те значения что тебе нужны).
Ты сложил результаты выполнения этих функций и положил в summa. Так как в функциях ты ничего не возвращаешь - возвращается ноль. funktion(&A) - результат 0.0 funktion(&B) - результат 0.0 summa = 0.0 + 0.0 В итоге получаешь ноль. А значения A и B изменились, потому что ты передавал по указателю.
>>139516860 (OP) > передать значение хуйни в другую функцию можно без этого говна? попробуй передать массив, лалка. Ой, подожди ка! Ведь массив это и есть указатель! А может быть, ты сможешь передать в функцию объект? Но стой, ведь переменная, содержащая объект - это тоже указатель...
>>139526861 Дрочую. Мало того, что ненадёжной, так ещё и malloc который прячется в new и free - это весьма затратные системные, а иногда и кастомные функции. Поэтому юзай стек, пока не встретиться с непреодолимыми ограничениями из-за области видимости.
>>139526691 Я не говорил что указатели не нужны, я говорил что new не нужно в 90% случаев. И наследование с полиморфизмом тоже. Наследование заменяй на композицию.
Поясните, нахуя нужно ООП? Вот сейчас изучаю паттерны, так там пишут, что это хуйня и нинужно, то не используйте, это не по канону, наследование хуйня собачья. Не понимаю.
>>139527305 По тому, что сначала придумали ООП, потом написали на нем тонну не поддерживаемого говна, проблевались от своей никчемности, но альтернативы не взлетают. Вот и придумали свод правил, как юзать это говно, чтобы хоть как-то сошло за годноту.
>>139527305 Зачем ты сел читать ООП паттерны, если ты не знаешь зачем ООП? Не твоё еще. Когда поработаешь года два, поймешь. Когда проект превратится в кашу, полезут утечки памяти. Наследование с полиморфизмом закрутится и будешь сидеть распутывать че ваще куда. И вместо того, чтобы развивать проект ты будешь постоянно с ним ебаться и чинить.
Паттерны проектирования нужны для того, чтобы во-первых, решать однотипные задачи одним и тем же крутым способом и, во-вторых, чтобы программисты могли завать решение одним словом и каждый понял как там че устроено.
А вообще паттерны проектирования - это костыли для языка.
>>139527275 > Наследование заменяй на композицию Далеко не всегда это нормально отражает реальные связи реальных объектов. Просто эти идиоты начинают наследовать все от всего, вот и выходит идиотизм.
> new не нужно в 90% случаев Остаются еще 10% случаев, в которых нужны. Ну а так, объекты которые управляют собственными внутренностями вполне себе работают.
>>139526861 что ты считаешь ручным управлением? Если в конструкторе Н-ного класса у меня выделяется кусок памяти, а в деструкторе он же удаляется - это ручное управление?
>>139527856 Я верю в тебя ОП. Учи, читай, если конечно это тебе надо. Не переживай, поймешь. Москва не сразу строилась. Я вот прочтя книгу одну не хуя не понял. Прочтя вторую, я вспоминал старую и понимал, то, что до этого у меня вызывало затруднение.
>>139527855 Вот, научить можно. А чтобы он что-то с этим крутое сделал - вряд ли. Это как два вида художников - одни детские раскраски разрисовывают, а другие делают охуенные картины. ОП с таким пониманием вещей будет красить раскраски, если конечно ещё сможет совладать с собственной глупостью и изучит хоть что-то.
>>139527635 Ну ООП я вроде знаю, я спрашивал, почему некоторые паттерны противоречат принципам ООП. ну хуй знает как объяснить, конечно я еще не до всего догнал, но пока я согласен с тем аноном, похоже на костыли для костылей.
>>139527851 Куча - способ обойти ограничения стека. В контроллерах нужно 10 раз подумать перед внедрением поддержки кучи в проект. Делается, только если ну совсем никак.
>>139528051 Ну дык его же никто не заставляет библиотеки писать. Будет на STL писать, то, что потребуется. Ну а если хочет зарабатывать, то пускай в web-программисты идет.
>>139528180 Сам был таким, вот только на двачах ебанутых тредов не создавал, а читал книги и вдумывался. Пробовал, спотыкался, но понимал. До сих пор читаю и учу.
16: Why do many experts not think very highly of Herbert Schildt's books?
A good answer to this question could fill a book by itself. While no book is perfect, Schildt's books, in the opinion of many gurus, seem to positively aim to mislead learners and encourage bad habits. Schildt's beautifully clear writing style only makes things worse by causing many "satisfied" learners to recommend his books to other learners.
The above reviews are admittedly based on two of Schildt's older books. However, the language they describe has not changed in the intervening period, and several books written at around the same time remain highly regarded.
>>139528253 Ответ на вопрос ОПа, зачем передавать по значению и по ссылке тут >>139525507 Ответ на вопрос в Оп посте почему у меня Х работает а Y нет тут >>139520256
>>139528369 Ага, sql админом. SQL мать его админом. Сейчас думаю написать программу психологического тестирования. Психолог придумывает, я реализую. Проблема в том, что про интерфейс в C++ я не знаю ровным счетом, нихуя.
>>139528646 И в чем же заключается админство? Часто нужно изменять вручную данные в базе? Восстанавливать бэкапы? Что-то туда докидывать и менять структуру?
>>139528687 Но в твоей джаве же все кроме примитивных типов - это указатели. При этом продвинутые перцы вынуждены обходить ограничения JVM через off-heap и работу с памятью через те же указатели напрямую.
>>139516860 (OP) Для всякой хуйни типа списков односвязных, для итерации хуёмоё, и вообще, блядь, ну ты представь язык, в котором нельзя к адресу обратиться? Нахуй он нужОн такой,м?
>>139528746 > При этом продвинутые перцы вынуждены обходить ограничения JVM через off-heap и работу с памятью через те же указатели напрямую. На что только не готовы джавабляди чтобы не пердолиться с крестами. Почему не вынести хайлоад в крестолибу и не вызывать её?
>>139528507 ХЗ, не читал Шилдт очень людит упрощать, и от этого может провафлить некоторые тонкие вещи. Но читается зашибись, и по большей части всё равно будет верен.
>>139527946 > именно всё через new делать Ну, так-то оно где-то в недрах таки делается через new (в динамических структурах). Просто чаще всего мы этого не видим.
>>139528030 Окей, если в какой-то либе, в какой-ниьудь STL, используются всякие аллокаторы - это тоже ручное управление?
>>139528901 Хотя не, хуйню сказал, питон всяческий и прочее нормально живут, цветут и пахнут. Да хуй знает, оп, может и правда нахуй не нужны я ебу что ли, ч тебе программист, блядь? ху4ли ты доебался до меня с утра пораньше?
>>139528947 Потому что там проблема не в скорости работы кода, а в работе с памятью именно в джава-коде. В таком случае придется весь код переписывать с джавы на плюсы. Уж не говоря о том что JNI сам по себе довольно неприятная и неудобная штука, зачастую съедающая весь профит от переноса кода в нативный язык.
>>139528067 > В контроллерах нужно 10 раз подумать перед внедрением поддержки кучи в проект В контроллерах куча имеет смысл при наличии внешней памяти. А так-то да, хорошо если есть стек с удобной работой. А если еще учесть, что у каждого контроллера свои приколы работы с памятью-стеком...
>>139529335 > Ты же не назовешь сборщик мусора ручным управлением памятью? Не назову. Но считать ли аллокаторы и деаллокаторы, которые вызываются неявно (а не "стартуют сами по себе независимо от") ручным управлением? Если у меня на выходе из области видимости моего объекта срабатывает его деструктор, который вызывает деаллокацию всего что этот объект насоздавал - это ручное управление? Ведь я, как конечный пользователь, нихера вообще для этого не делаю.
>>13952929 >Лучше больше, чем меньше, про запас, вдруг понадобится? А ничего, что стандартная либа крестов весит минимум в 2 раза больше стандартной от С, требует её же. И если ты из всего эиого заюзал только классы то это не рациональная трата ресурсов там где каждый байт на счёту, в ИоТ, например. И не надо мне тут про ардуинщиков и прочих любителей поминать светодиодом. Этим и js норм будет.
>>139529599 Двачну, но все-таки эта эмбеддщина лишь одна возможная ниша. Да и то чем дальше тем больше становится дешевых девайсов с большой памятью куда можно хоть джаву впердолить.
>>139529484 Если ты писал класс сам, то да, это ручное управление памятью. И суть в том, что если ты накосячил - у тебя будут проблемы.
Если ты сам памятью нигде не управляешь, но ручное управление используется где-то во внутреннем коде либы или фреймворка (будем считать что код 100% отлажен), то ты не пользуешься ручным управлением памятью. Очевидно же.
>>139529750 Угу, и начинается ад по поиску, настройке и сборке этих либ (это же не джава где тебе мавен сам все зависимости скачает и установит), а потом выясняется что у тебя четыре разных класса строки в одном проекте используется (это про С++, тащемта его стандартная библиотека полное говнище, но думаю в С ситуация схожа).
>>139529801 Извини, но мне платят недостаточно, чтобы я ещё и в асм пердолился. Алсо, когда я рассматриваются дизассемблер с -О3 я весьма приближённо понимаю, связь моего кода и того, что наделал компилятор. Компилятор официально умнее меня, как минимум пока.
>>139529928 > Если ты писал класс сам, то да, это ручное управление памятью
А если класс писали умные дяди из стандартизации библиотеки, то уже автоматическое? > будем считать что код 100% отлажен > если ты накосячил - у тебя будут проблемы Вот где вся хохма. Если где-то накосячил разработчик либы - у меня все равно будут проблемы, но хер я ее найду и пофикшу.
>>139527305 >Поясните, нахуя нужно ООП? Чтоб не было повторно кода, есть например функция которую ты написал, есть разные модули которую эту функцию использует, чтоб не писать под каждый модуль примерно одинаковую функцию, делают так чтобы функция была универсальная.
>>139530000 > мне платят недостаточно Сколько? К тому же, асм - это интересно, и в некоторых местах таки помогает. > Компилятор официально умнее меня Он просто лучше считает, это да. Но таки ты прав, в большинстве случаев (кроме хитрых промежуточных использований результата и прочей магии) компилятор делает более компактный код, чем человек.
>>139530279 А у него в лицензии написано, что он не виноват, если все поломается, юзайте на свой страх и риск. Таким образом виноват ты, ибо заюзал софт не соответствующего задаче качества.
>>139530405 > подменяешь понятия. Ты их подменяешь. Говоришь что если new-delete написал в своей либе я, то это ручное управление, а если васян - то уже автоматическое.
>>139530459 Софт с такой лицензией в самолет никогда не засунут. Ну или засунут, но тогда ССЗБ.
Тащемта в той же джаве например (в самой jvm) в лицензии вроде есть предупреждение что она не должна использоваться для управления всякими атомными станциям и прочими опасными штуками.
Вот у меня в функции main есть переменные A, B, C, а в функции govno есть переменные X, Y, Z. Заголовок её выглядит так: >int govno(int X, int Y, int Z)
Я пишу в функции main: >govno(A,B,C)
Это значит, что в функции govno переменная X примет значение A, Y - B, а Z - C?
>>139530701 Тебя компилятор нахуй пошлёт. Если конечно где-то не было объявлено >int govno(int X, int Y) или ты не написал, как >int govno(int X, int Y, int Z=0)
>>139530471 Нет, если ты рассматриваешь либы как непосредственную частицу своего проекта, то нужно рассматривать еще и стандартную либу. В которой по факту используется ручное управление. Чем она отличается от любой другой, кроме того, что идет из коробки? Исходя из твоей логики писать с автоматическим управлением вообще невозможно не только на С++, но и на других языках с GC, где внутренности GC (как часть библиотеки) сделаны на динамическом управлении памятью.
Ты пытаешься объединить СВОЙ код (клиентский) с кодом библиотек языка, что в корне неверно.
Вы все херово обяснили. Кроме этого >>139519076 анона. Если вы не можете объяснить понятным языком предмет, так чтобы это понял 5 летний ребенок, значит вы сами нихуя не знаете, бездари ебаные.
>>139530960 ПАРАМЕТРЫ БЛЯДЬ. Те переменные, значения которых должно быть передано при вызове. Не все локальные переменные, а только те которые определяют результат твоей функции.
>>139531805 У математической функции есть параметры. У функции в коде есть параметры. У математической функции их обычно указывают в скобках после имени, например sin(x). У программерской функции их обычно указывают в скобках после имени, например sin(double x).
>>139531805 Да напрямую. Если объеснять на пальцах: функция - это некоторое правило, которое сопостовляет элементам одного множества элементы другого множества.
Элемент первого множества - это аргументы функции, а элемент второго множества - это значение функции при данных аргументах.
И вот ты такой в программировании хочешь написать функцию y(x) = x^2; и ты её описываешь точно также, как и в математике, только типы еще надо указывать того, что туда передавать: double y(double x){ return x*x; } Только в отличие от математических функий тут ты можешь целый алгоритм забацать. А а для возвращения значения используется return.
И вопросы уровня А ЧТО Я ДОЛЖЕН ЗАПИСЫВАТЬ В СКООООБКАХ НАВЕРНО ВСЕ ПЕРЕМЕНННЫЕ ИЛИ НЕ ВСЕ МОЖЕТ БЫТЬ говорят о том шо ты нихуя не понял.
>>139516860 (OP) >Кстати, посмотрите на код пожалуйста. http://ideone.com/jS4h5M Сами видите что всё отлично передаётся без указателей. И второй вариант. http://ideone.com/3PB9YW Я добавил "x" в прототип функции, но это никак не повлияло на работу кода. НО если я уберу "x" из круглых скобок в самой функции, то всё пизда пизда огорчение ошибка ничего нихуя не работает. И третий вариант. http://ideone.com/WcXLJ1 Я заменил "x" на "y" в прототипе функции, но код всё равно работает.
Короче, бля, ща поясню, в прототипе функции ты просто указываешь какой тип данных туда передается, там можно все что угодно после твоего ИНТа указать, а можно нихуя не указывать, а в самой функции ты уже указываешь как эта переменная будет у тебя называться.
Насчет указателей тоже хотел тебе объяснить, но ты чурка необразованная раз с первой частью не разобрался иди кури учебники по-новой.
>>139533264 Да не, просто их рендер SVG меня взбесил, а то, что у них QGraphicsItem не унаследованы от QObject в версии 5.5 временами бесит У нас просто целевая платформа поддерживает только 5.5, а если самому унаследовать, то начинаются проблемы :\
>>139533264 Я в этом посте одного чувака случайно захайлайтил. Так вот, я хотел ему сказать, но дабл имеет границы, а множество вещественных чисел -- как-то не очень.
>>139533740 Лол, шилдт норм посан. И его книга по сям, внезапно, овер годная. По крестам и шарпу, да, говно ебаное, но мне почему-то кажется, что оно писалось для людей, которые в принципе умеют программировать и конкретно этими языками пользуются нечасто. Ну как бы оно на вкус и цвет все фломастеры разные, но вот по Pure_C Мне Шилдт неплохо помог, и как бы K&R и полный справочник по Си -- достаточно вполне, чтобы уметь программировать на Си. Дальше умение развивается уже другими книгами, смотря что ты собрался программировать. Но, для того, чтобы взять базу этих двух достаточно.
>>139533890 Читал его книгу по С. Налицо копипаст стандартной библиотеки, примеры реализации связанных списков и деревьев тоже весьма и весьма школьные. Для новичков сойдёт, тем не менее.
>>139534075 Давай будем уточнять, какую книгу по си ты читал. У шилдта есть реально говённые from the ground up, рассчитанные на школьников-пенсионеров. Полный справочник -- он сука справочник. И свою функцию выполняет. То есть это та самая книга, которую можно подкладывать под монитор, пока кодишь на си, и под пианино, когда кодишь на сипп. Просто да, были времена, когда доступ в интернет был несколько проблематичен и подобные книги действительно спасали день. А сейчас я и сам например, если нуждаюсь в помощи по сипп например -- я иду на сиппреференс. Алсо, у шилдта вступительные главы одним заходом приятно прочитать. Освежает знания, я бы сказал. А так, обычно для изучения программирования нужен методический материал, учебник, с примерами и задачами. Если ты первый раз изучаешь. И как бы как опхуй какое-то время при изучении программирования тебе необходимо будет не зная, что в прототипе форвард декларейшн функции можно опускать имена, просто писать блядский код. Это как с дрочильнями вроде кс или осу -- кодирование тоже приходит с надрочкой. Потом да, со временем ты начинаешь понимать и чуять разницу между ++x и x++, но некоторое время нужно просто привыкнуть кодировать. Ну как бы для меня это было первая глава K&R и что сам придумаю. Потом посложнее находил задачи и подглядывал с шилдта. Ну просто там удобнее. А потом просто надрачиваешься и пишешь.
Заходи, анон! Если ты решил облагородить свою фейковую страничку и набрать побольше друзей, то эта группа для тебя. Работает это очень просто: заходишь в группу и добавляешь всех участников в друзья. Если вступаешь, то тебя будут добавлять в друзья вновь прибывшие участники.
Здесь устранены все недостатки подобных тредов, у нас не нужно: • самостоятельно заходить на адреса, которые выкладывают в тредах • у нас только аноны, никто ради фана не скидывают адреса реальных людей, которые потом недоумевают и стучатся в личку. • группу не удалят мочераторы /b/ и ее не смоет в /soc/ Здесь все твои твои друзья ⚡
Тащемта если ты опасаешься, что твой фейк спалится нахождением в этой группе - необязательно вступать в нее, просто вбрось свой id на стену (А лучше в топик https://vk.com/topic-68759094_34545010).
У нас есть ПРАВИЛА (будут дополняться): • можно писать на стене, но нельзя спамить! За многократные сообщения а-ля "Добавь в друзья!" последует предупреждение, затем бан. • оскорбления участников и прочие бессмысленные срачи запрещены • кидание в подписчики ВСЕХ анонов так же карается баном • не стоит вступать/оставлять ссылку в группе, если на вас можно только подписаться • если есть какие-то условия для добавления типа только похожие на реальные страницы, людей старше 50и лет (мало ли что анону в голову придет), страницы с полным отсутствием намеков на АИБ и прочее - то обязательно указывайте это. • если хотите пообщаться, то пишите об этом • если не хотите чтоб вам писали, тоже указывайте это • если обнаружили того, кто писал или состоит в группе и кто не добавляет, хотя на странице видна активность или вообще кидает в подписчики, то сообщайте админам или пишите их айди в теме https://vk.com/topic-68759094_34544818 , или комментите их сообщения что мол не добавляют они
Добавление админов группы в друзья очевидно :3
Чтобы добавить всех участников группы не обязательно открывать каждую их страницу, достаточно открыть в новой вкладке участников сообщества (там справа от каждого будет кнопочка добавить в друзья)
Чтобы отслеживать тех, кто кинул в подписчики, переходим у себя в друзьях справа во вкладку "заявки в друзья", а следом жмем на исходящие (или сюда) и отписываемся от всех, кто кинул в подписоту (кнопка отписаться)
Блять, он же щас мою чекать будет. Чё-та я неосмотрительно. Но не суть. Суть в том, что питушок не смог ничего ответить по сути и решил на личности перейти. Стиль повествования ему не угодил мой. Эх... ну ладно :) Я просто торопился, у меня пища готовится, я отхожу тут.
>>139534725 У Шилдта факапы серьёзные Вот например:
global, static, automatic
Schildt very helpfully decides to use terms like "global" and "local" rather than the formal language of the standard. This, it turns out, results in some amazingly bad material. No one is surprised.
On page 26, he tells us:
Unlike local variables, global variables are known throughout the program and may be used by any piece of code. Also, they will hold their value throughout the program's execution.
He's conflating two aspects of file-scope variables; their scope, and their storage duration. This doesn't seem like it'd be a big deal, until he starts talking about things that would affect storage duration or scope. Such as, say, the static keyword.
On page 33-34, things get confusing, in a way that follows directly from his poor (or at least, incorrect for C) definitions of "local" and "global". The C type-qualifier static is, well, confusing. It's confusing because its semantics are sort of non-obvious and differ with context. Unfortunately, Schildt only makes it worse. He uses the term "local variable" to refer to what C would call an "automatic" variable, normally. Then he explains that, if you qualify it with static, a local variable has permanent storage reserved for it. Great. Then we get to the incoherent heading static Global Variables (page 34):
Applying the specifier static to a global variable instructs the compiler to create a global variable known only to the file in which it is declared.
Come and see the rare and amazing wild oxymoron in its native habitat! Bring your kids! It's a global variable which isn't visible anywhere else.
The problem here is that he should have stuck with the way the language is actually defined—distinguishing between storage duration, scope, and linkage. That would make it easy to explain that, for variables declared in a restricted scope, static imposes the "static storage duration", and that for variables declared outside of any function, which necessarily have static storage duration, static restricts linkage. It's confusing, sure. The weirdness of the meaning of static has troubled writers trying to explain C for a long time. However, that's no excuse for nonsense such as a "global variable known only to the file in which it is declared."
("Linkage", you ask? Scope is whether something is defined only inside a particular function or block, or visible to all functions. Linkage is whether it's visible only within a given translation unit or to the whole program. Thanks to an eagle-eyed reader for spotting that I'd mistakenly called it "scope".)
More generally, the confusion results in additional issues elsewhere; for instance, on page 27-28, Schildt claims that:
File scope identifiers are visible throughout the entire file. Variables that have file scope are global.
No, they're not. They're visible within that file, and could be linked to from another file that provided a declaration for them. This is the kind of oversimplification that results in people being unable to figure out why their code doesn't compile.
For another example, describing the C99 variable-length array feature, he says that VLAs can only be local variables. No, they can only be automatic variables; you can't declare a static local VLA.
>>139535561 Да ты просто сам по себе говно ебаное пища у него там дерьмо блять - когда съешь свою пищу и высрешь дерьмо - чтобы съел всё гандон, а я приду и прочекаю тебе с мамкой насекомое обсос нахуй
>>139536567 считай это жаргоном, ублюдок. Ты поди, как мамкин программист КОДИШЬ. так? ну или называешь это так. можно же кодить флак в мрз? а в первом лице этот глагол как будет? Потому что иди на хуй. Я всё сказал.
как же блять сука заебало что кругом одни дауны сам уже даун тред хуй пойми сколько постов и одна хуйня все несут какой-то бред один дебил посоведовал python вместо с и другой его поддерживает куда катится мир нахуй
>>139537022 Ну для написания всяких скриптов при реверс-инжиниринге используется питончик. Скажем, в той же IDA, он прям ВШЛЁПАН. Так что как бы то ни было, истинные воры когда придумывают таблетки для ваших любимых дрочилен достаточно много хуярят на питончике :)
>>139516860 (OP) Ебать какие дауны в шарагах, я дома учил это по какому-то зассоному учебнику, одновременно скроля двач и дроча на трапов, и всё понял.
>>139537824 int // тип результата ophui // идентификатор функции ( int a, // аргумент 1 int b // аргумент 2 ) { int result; // локальная переменная, которая доступна только между этими двумя фигурными скобками result = a + b; // присвоить сумму а и б return result; // возвращение результата }
void main (void) // точка входа в программу { int a = 22; //локальная переменная int b = 20; int c = ophui (a,b); // ещё одной локальной переменной, которая будет видна только в функции мейн присвоим значение, которое считается в ophui return c; // это я написал для примера, в таком случае результат будет возвращен операционной системе. } that's all folks.
Нахуя в ебучем C++ существуют ссаные указатели звёздочка и ссылки &, если передать значение хуйни в другую функцию можно без этого говна? С примерами, пожалуйста. В шараге заставляют передавать всякое говно по указателям, а я нихуя не понимаю как это работает И нахуя это нужно, если всё работает без указателей. А ещё нахуя нужны прототипы функций и что за говно мы указываем в скобочках при (а) вызове функции и (б) при написании функции ну после main, когда пишем сам код? Все учебники пишутся пидорасами, которые не могут объяснить всё человеческим языком, поэтому вся надежда на вас.
Кстати, посмотрите на код пожалуйста. http://ideone.com/jS4h5M Сами видите что всё отлично передаётся без указателей. И второй вариант. http://ideone.com/3PB9YW Я добавил "x" в прототип функции, но это никак не повлияло на работу кода. НО если я уберу "x" из круглых скобок в самой функции, то всё пизда пизда огорчение ошибка ничего нихуя не работает. И третий вариант. http://ideone.com/WcXLJ1 Я заменил "x" на "y" в прототипе функции, но код всё равно работает.