LINUX.ORG.RU

А как вы учите языки?


0

0

Вот народ мучается, тр***тся с абстрактными примерами, явно вникает во все нюансы, вот последний пример - http://www.linux.org.ru/view-message.jsp?msgid=3701527&lastmod=1242239644311 , а так их вообще куча.

была бы такая задача, я бы не задумываясь написал
const int* pi=&i;
i++;

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

Ответ на: комментарий от mannaz

>По существу дискуссии: условие sizeof(char) == 1 всегда и везде истинно (5.3.3 Sizeof)

под рукой нет стандарта, завтра посмотрю что там в 5.3.3

jtootf ★★★★★
()
Ответ на: комментарий от mannaz

>Только не забывай при этом про ограничения, связанные с выравниванием памяти, т.к. спарки, например, не такие добрые по части адресации как x86.

спасибо, не забуду :)

jtootf ★★★★★
()
Ответ на: комментарий от jtootf

Вопрос о легкости и читабельности стандарта C++, конечно, субъективен, но я, например, не встречал еще технических стандартов, которые бы воспринимались мозгом как комиксы. Тут нужна определенная привычка и понимание. Кроме того, основная (с точки зрения языка) проблема при написании переносимого кода - это уровень поддержки стандарта различными компиляторами, а не уровень знания тонкостей стандарта разработчиком. Поэтому в стандарт, при всей своей любви к нему, мне приходится заглядывать достаточно редко.

mannaz
()
Ответ на: комментарий от mannaz

> Ничто не мешает создать полностью соответствующий стандарту компилятор языка C++ на машине, минимальная доступная для адресации единица памяти которой составляет, например, 9 бит

Более того, они и созданы :)

tailgunner ★★★★★
()
Ответ на: комментарий от jtootf

>вообще говоря, мне из стандарта ни C, ни C++ ответ на поставленный вопрос не очевиден.

Я извиняюсь, но разве uint8_t из stdint.h, являющегося частью стандарта C99 не то, что нужно?

linuxfan
()
Ответ на: комментарий от jtootf

> да хоть 42

Ну именно 9-битовых я не встречал, а вот с 32-битовым char имел "удовольствие".

> лишь бы единичный шаг был

На самомо деле, char можно назвать "минимальной адресуемой сущностью". Правда, ХЗ как это для машины с побитовой адресацией :)

tailgunner ★★★★★
()
Ответ на: комментарий от jtootf

> стандарт этого не гарантирует

гарантирует, поэтому мои рассуждения верны.

> а расстояние между какими элементами нулю не равно?

это часть доказательства. Если бы было не равно то моя логика была бы не верна.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

> гарантирует, поэтому мои рассуждения верны. jtootf просто зациклился на чарсетах и том, что тип char может иметь разный размер в байтах на разных платформах, но упустил из внимания то, что само понятие "байт" в стандарте C++ определено как последовательность implementation-defined кол-ва бит, а размер char'а всегда равен одному этому "байту" (что и показывает sizeof)

mannaz
()
Ответ на: комментарий от mannaz

пункт 5.3.3 содержит указание sizeof char == 1, так что возражения по этому поводу снимаю

jtootf ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.