реклама на сайте
подробности

 
 
> А почему так инициализация
DASM
сообщение Jul 24 2018, 18:43
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



CODE
struct lala
{
char *p;
}
....
lala la = {"the"};
*(la.p) = '1'; // access violation

Чего тут думают керниганы и примкнувшие, не понимаю. Ну вроде же initialyzer list, почему он не создает временный rw объект и не присваивает ему указатель, а вместо этого прямо в лоб на константный инициализатор ссыль кидает. Где в стандартах этого так называемого языка программирования глянуть?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
DASM
сообщение Jul 25 2018, 15:30
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Еще интересный вопрос возник. Как вам такая штука
Код
int searchDB (int v)
{
//..............
}
.... main...
searchDB('1234');

Тут gcc дает warning что то там multibyte, точно не помню. Просто интересное применение, раньше как-то не встречал такую идею.

Цитата(Forger @ Jul 25 2018, 18:26) *
Вполне возможно, что у него соотв. ворнинги запрещены через соотв. ключи компиляции самой средой.

По умолчанию? Он ругается на куда более безопасные вещи. Ну ладно, с этим вопросом разобрались вроде
Go to the top of the page
 
+Quote Post
Forger
сообщение Jul 25 2018, 15:30
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(DASM @ Jul 25 2018, 18:27) *
Еще интересный вопрос возник. Как вам такая штука
Код
int searchDB (int v)
....
searchDB('1234');

Тут gcc дает warning что то там multibyte, точно не помню. Просто интересное применение, раньше как-то не встречал такую идею.

На известном ресурсе полно подобного "кода". Смысл его тут цитировать?

Код
Он ругается на куда более безопасные вещи
M$ - уже давно не образец для подражания.


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
DASM
сообщение Jul 25 2018, 15:31
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(Forger @ Jul 25 2018, 18:30) *
На известном ресурсе полно подобного "кода". Смысл его тут цитировать?

Стоп стоп. Почему Вы считаете это говнокодом и как бы Вы сделали, не городя монстра? По сути из имени получается бесплатно подобие хэша. Иначе варианты начинают хотеть strcmp, или, страшно сказать std::map . А тут бесплатно
Go to the top of the page
 
+Quote Post
Forger
сообщение Jul 25 2018, 15:39
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(DASM @ Jul 25 2018, 18:31) *
Стоп стоп. Почему Вы считаете это говнокодом и как бы Вы сделали, не городя монстра?

Разве не очевидно? Функция ожидает int, а получает то, что дадут.
В подобных ситуациях делают ряд функций, каждая из которых работает со своим типом данных.
Либо передается в одну функцию ссылка на определенную структура, где заранее расписаны "детали" поиска и что искать.
Существуют и другие способы, но там уже используются чисто плюсы и их "фишки".

Цитата
По сути из имени получается бесплатно подобие хэша.
Неявно, неочевидно. Со временем развития проекта из-за этого могут возникнуть проблемы, которые найти будет довольно сложно.
Компилятор заругается, если будет не 4 цифры, а больше или int на неком железе окажется равным не 4 байтам. Но ведь это лишь предупреждение... Не дай бог это попадет в библиотеку, где линкер при сборке этого просто не увидит!
А если дать всего 3 цифры, то что получит на входе функция? Лотерею из мусора в стеке?...


--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
DASM
сообщение Jul 25 2018, 16:01
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(Forger @ Jul 25 2018, 18:39) *
Разве не очевидно? Функция ожидает int, а получает то, что дадут.
В подобных ситуациях делают ряд функций, каждая из которых работает со своим типом данных.
Либо передается в одну функцию ссылка на определенную структура, где заранее расписаны "детали" поиска и что искать.
Существуют и другие способы, но там уже используются чисто плюсы и их "фишки".

Неявно, неочевидно. Со временем развития проекта из-за этого могут возникнуть проблемы, которые найти будет довольно сложно.
Компилятор заругается, если будет не 4 цифры, а больше или int на неком железе окажется равным не 4 байтам. Но ведь это лишь предупреждение... Не дай бог это попадет в библиотеку, где линкер при сборке этого просто не увидит!
А если дать всего 3 цифры, то что получит на входе функция? Лотерею из мусора в стеке?...

Думаю Вы правы. Просто дали проект, сижу разбираюсь. Многие вещи интересные. Причем 90% кода по всем правилам, что наводит на мысли об опыте автора. А раз применяет такие трюки - может в этом есть смысл? Я то сам пишу удивительно пресный код, таких открытий он не сулит. Но у меня обычно больший overhead, не люблю оптимизировать
Go to the top of the page
 
+Quote Post
Forger
сообщение Jul 25 2018, 16:10
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 22-02-05
Пользователь №: 2 831



Цитата(DASM @ Jul 25 2018, 19:01) *
Просто дали проект, сижу разбираюсь.

Сочувствую sad.gif Доделывать начатое за другими - мало кому по кайфу ...

Цитата
Но у меня обычно больший overhead, не люблю оптимизировать
В таких ситуациях когда флэш очень толстая и камень имеет огромный запас производительности я задаю себе один простой вопрос: "а стоит ли овчинка выделки?" wink.gif



--------------------
Кругозор некоторых людей - круг с нулевым радиусом. Они называют его "точкой зрения".
Go to the top of the page
 
+Quote Post
DASM
сообщение Jul 25 2018, 16:24
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 644
Регистрация: 28-05-05
Пользователь №: 5 493



Цитата(Forger @ Jul 25 2018, 19:10) *
Сочувствую sad.gif Доделывать начатое за другими - мало кому по кайфу ...

В таких ситуациях когда флэш очень толстая и камень имеет огромный запас производительности я задаю себе один простой вопрос: "а стоит ли овчинка выделки?" wink.gif

Не, сочувствовать не надо. Я во всех чужих программах ищу и нахожу что то новое. Может через месяц я начну переделывать ее, но уже имея в багаже чужие трюки и подходы. Есть плохие места, есть интересные. Знания лишние не бывают.
Операционку он ucos юзал, не в восторге, но работает. Я хотел бы scmRTOS, но это потом. Кстати крутая программистка, которая тоже сидела над этим проектом за нее. Но увы, у девушек редко хорошо с железом,, поэтому с ней расстались. Хотя в плане академического программирования - все красиво и хорошо.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- DASM   А почему так инициализация   Jul 24 2018, 18:43
- - aaarrr   Потому что "the" по стандарту константа.   Jul 24 2018, 18:46
|- - ViKo   Цитата(aaarrr @ Jul 24 2018, 21:46) Потом...   Jul 24 2018, 18:52
||- - aaarrr   Цитата(ViKo @ Jul 24 2018, 21:52) А указа...   Jul 24 2018, 18:54
||- - DASM   Цитата(aaarrr @ Jul 24 2018, 21:54) Указа...   Jul 24 2018, 19:00
||- - jcxz   Цитата(DASM @ Jul 24 2018, 22:00) А почем...   Jul 25 2018, 05:16
|||- - DASM   Цитата(jcxz @ Jul 25 2018, 08:16) Согласе...   Jul 25 2018, 15:22
|||- - Forger   Цитата(DASM @ Jul 25 2018, 18:22) M...   Jul 25 2018, 15:26
||- - XVR   Цитата(DASM @ Jul 24 2018, 22:00) А почем...   Jul 25 2018, 07:58
|||- - jcxz   Цитата(XVR @ Jul 25 2018, 10:58) Потому ч...   Jul 25 2018, 10:20
|||- - XVR   Цитата(jcxz @ Jul 25 2018, 13:20) Да ладн...   Jul 26 2018, 12:42
|||- - Forger   Цитата(XVR @ Jul 26 2018, 15:42) Единстве...   Jul 26 2018, 12:56
|||- - XVR   Цитата(Forger @ Jul 26 2018, 15:56) В дан...   Jul 26 2018, 13:01
|||- - Forger   Цитата(XVR @ Jul 26 2018, 16:01) А в чём ...   Jul 26 2018, 13:03
|||- - XVR   Цитата(Forger @ Jul 26 2018, 16:03) Что б...   Jul 26 2018, 13:39
|||- - Forger   Цитата(XVR @ Jul 26 2018, 16:39) Т.е. вы ...   Jul 26 2018, 13:47
||- - esaulenka   Цитата(DASM @ Jul 24 2018, 22:00) А почем...   Jul 25 2018, 09:56
||- - Forger   Цитата(esaulenka @ Jul 25 2018, 12:56) В ...   Jul 25 2018, 10:02
|- - DASM   Цитата(aaarrr @ Jul 24 2018, 21:46) Потом...   Jul 24 2018, 18:56
- - ViKo   ЦитатаУказатель модифицировать можно, а вот содерж...   Jul 24 2018, 18:59
- - Forger   Цитата(DASM @ Jul 24 2018, 21:43) CODEstr...   Jul 25 2018, 07:04
||- - Forger   Цитата(DASM @ Jul 25 2018, 19:24) Не, соч...   Jul 25 2018, 16:33
|||- - DASM   Цитата(Forger @ Jul 25 2018, 19:33) Ну, е...   Jul 25 2018, 16:49
|||- - Forger   Цитата(DASM @ Jul 25 2018, 19:49) проблем...   Jul 25 2018, 17:05
||- - jcxz   Цитата(DASM @ Jul 25 2018, 19:24) Операци...   Jul 25 2018, 20:30
||- - Forger   Цитата(jcxz @ Jul 25 2018, 23:30) Сурово ...   Jul 25 2018, 20:35
|- - jcxz   Цитата(DASM @ Jul 25 2018, 18:31) Иначе в...   Jul 25 2018, 16:19
|- - Arlleex   Цитата(jcxz @ Jul 25 2018, 19:19) Нормаль...   Jul 25 2018, 16:31
- - DASM   Ни разу не видел еще готовый проект с кучей доступ...   Jul 25 2018, 17:41
|- - Forger   Цитата(DASM @ Jul 25 2018, 20:41) Ни разу...   Jul 25 2018, 17:45
|- - DASM   Цитата(Forger @ Jul 25 2018, 20:45) Я тож...   Jul 25 2018, 17:48
|- - Forger   Цитата(DASM @ Jul 25 2018, 20:48) А как п...   Jul 25 2018, 17:52
|- - DASM   Цитата(Forger @ Jul 25 2018, 20:52) Под я...   Jul 25 2018, 18:15
|- - Forger   Цитата(DASM @ Jul 25 2018, 21:15) Я вообщ...   Jul 25 2018, 18:34
|- - DASM   Цитата(Forger @ Jul 25 2018, 21:34) В это...   Jul 25 2018, 18:42
- - DASM   БолгенОС уже была..   Jul 26 2018, 02:32
- - Arlleex   Цитата(jcxz @ Jul 26 2018, 00:30) Это ана...   Jul 26 2018, 04:49
- - DASM   "С какой стороны будет "обрезана" с...   Jul 26 2018, 14:20
|- - Forger   Цитата(DASM @ Jul 26 2018, 17:20) "С...   Jul 26 2018, 14:22
- - DASM   С литеральными все понятно и вопроса не было бы. Я...   Jul 26 2018, 15:25
|- - Forger   Цитата(DASM @ Jul 26 2018, 18:25) Вот ...   Jul 26 2018, 15:35
|- - XVR   Цитата(Forger @ Jul 26 2018, 18:35) У мен...   Jul 26 2018, 19:40
- - DASM   Ну Майкрософт ошибку дает, видимо кто на что гораз...   Jul 26 2018, 16:04
|- - Forger   Цитата(DASM @ Jul 26 2018, 19:04) то ++ с...   Jul 26 2018, 16:18
|- - DASM   Цитата(Forger @ Jul 26 2018, 19:18) Раз п...   Jul 26 2018, 16:43
||- - Forger   Цитата(DASM @ Jul 26 2018, 19:43) да нечи...   Jul 26 2018, 17:12
|- - DASM   Цитата(Forger @ Jul 26 2018, 19:18) Раз п...   Jul 27 2018, 04:57
|- - Forger   По логике i тут должен быть int, для этого тут пос...   Jul 27 2018, 05:25
|- - DASM   Цитата(Forger @ Jul 27 2018, 08:25) По ло...   Jul 27 2018, 05:42
|- - Arlleex   Цитата(DASM @ Jul 27 2018, 09:42) то буде...   Jul 27 2018, 06:26
||- - Herz   Господа, пора бы остановиться, а? Очень не хочется...   Jul 27 2018, 07:37
|- - Forger   Цитата(DASM @ Jul 27 2018, 08:42) Это не ...   Jul 27 2018, 06:44
- - DASM   i это не итератор, это локальная переменная типа э...   Jul 27 2018, 07:29
|- - Forger   Цитата(DASM @ Jul 27 2018, 10:29) i это н...   Jul 27 2018, 07:44
- - DASM   Это int. Дома посмотрю, почему у Вас сомнения   Jul 27 2018, 07:53
- - DASM   Проверил, это точно int , собственно и сомнений не...   Jul 29 2018, 12:15
|- - Forger   Цитата(DASM @ Jul 29 2018, 15:15) Провери...   Jul 29 2018, 13:11
|- - DASM   Цитата(Forger @ Jul 29 2018, 16:11) Попро...   Jul 29 2018, 15:32
|- - Forger   Заглумил я тут всех Короче, увеличил кучу, все с...   Jul 29 2018, 16:18
- - DASM   "несколько непривычно для восприятия цикла fo...   Jul 29 2018, 16:44
|- - Forger   Цитата(DASM @ Jul 29 2018, 19:44) мне неп...   Jul 29 2018, 16:59
- - DASM   ничего не понял. Предлагаете делать вектор на стек...   Jul 29 2018, 17:08
|- - Forger   Цитата(DASM @ Jul 29 2018, 20:08) ничего ...   Jul 29 2018, 17:15
- - esaulenka   Я дико извиняюсь, но почему обсуждение стандартной...   Aug 3 2018, 16:20
|- - Forger   Цитата(esaulenka @ Aug 3 2018, 19:20) Я д...   Aug 3 2018, 16:47
|- - XVR   Цитата(Forger @ Aug 3 2018, 19:47) Другая...   Aug 4 2018, 16:38
|- - Forger   Цитата(XVR @ Aug 4 2018, 19:38) Не надо. ...   Aug 4 2018, 16:44
- - Kabdim   Не стоит забывать что stl который с компилятором н...   Aug 5 2018, 10:05
|- - Forger   Цитата(Kabdim @ Aug 5 2018, 13:05) EASTL ...   Aug 5 2018, 15:20
|- - Herz   Цитата(Forger @ Aug 5 2018, 18:20) примен...   Aug 5 2018, 18:53
|- - Forger   Цитата(Herz @ Aug 5 2018, 21:53) А просто...   Aug 5 2018, 19:07
- - Herz   По сути сказанного я с Вами полностью согласен. Но...   Aug 5 2018, 19:30
|- - Forger   Цитата(Herz @ Aug 5 2018, 22:30) то я пря...   Aug 5 2018, 19:39
- - Herz   Вот именно.   Aug 5 2018, 19:48
- - Forger   Цитата(Herz)чем буржуазный "экспириенс" ...   Aug 5 2018, 20:06


Closed TopicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 07:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01537 секунд с 7
ELECTRONIX ©2004-2016