|
Заблокирован
|
|
Как грамотней писать объявление указателя?24.09.2014, 13:11. Показов 6943. Ответов 55
Метки нет (Все метки)
0
|
|
| 24.09.2014, 13:11 | |
|
Ответы с готовыми решениями:
55
Как грамотней писать код? Как обратиться к полям структуры через указатель и объявление указателя на структуру
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 25.09.2014, 09:59 | |
|
0
|
|
|
Заблокирован
|
|||
| 25.09.2014, 10:29 [ТС] | |||
|
Писать в столбик аргументы - вронг вей. ![]() Как тут кто - то предлагал объявлять переменные так: int *a, b;, тогда получается так что ли: int * a, * b; ![]() Явно не по фен шую, хотя одной строкой я никогда несколько переменных не объявляю. Объявление через два пробела типа: int * a; на мой взгляд смахивает на умножение, собственно я так всегда и пишу: int a = b * c;
0
|
|||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 25.09.2014, 10:36 | |
|
Я бы резюмировал следующим образом:
i) Придерживайтесь соглашений о кодировании в проекте, если они есть. Это может быть и корпоративный стандарт, и прямые договорённости с командой разработчиков. ii) Если Вы исправляете чужой код, придерживайтесь той структуры, которая уже существует. Не нужно запутывать код своими тараканами, там и чужих достаточно. iii) Соблюдайте собственные "стандарты". Если для себя Вы определились, как писать код (как расставлять скобки, куда прижимать звёздочку, где расположить блок private), то придерживайтесь выбранного пути, не будьте шизофрениками. ---------------------------- О звёздочках. С++ i) Сводите работу с указателями к минимуму! С++ позволяет работать на низком уровне, но именно позволяет. Прежде, чем начать работу на низком уровне, проработайте варианты высокого уровня. ii) Используйте умные указатели прежде всего. Тогда ничего никуда прижимать не нужно. iii) Ограничивайте связи других модулей с той областью кода, где используете низкоуровненвые возможности. В идеале вся низкоуровневая программа должна оставаться внутренней деталью вашей реализации. При написании бинарносовместимой библиотеки с C-интерфейсом, строго ограничивайте низкоуровневый код рамками интерфейса библиотеки. Не позволяйте низкоуровневому коду проникать в модули высокого уровня ---------------------------- Если Вы работаете с указателями: i) Прижимайте, куда нравится, но соблюдайте правила соглашений (см. выше). ii) Не используйте typedef для придания конструкции T* квалификации типа. Именно * модифицирует переменную. iii) Если Вы, всё же, решили "определить тип" T*, сразу определите тип T const *. Тоже самое относится и к ссылкам. Держите подобные определения строго внутри вашего ресурса (читай класса/структуры), не пишите глобальных определений.
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 25.09.2014, 10:47 | ||
|
0
|
||
|
Заблокирован
|
|||||
| 25.09.2014, 10:59 [ТС] | |||||
|
Используя всякие умные указатели можно иногда получить пинок в зад от ума этих указателей и софт наткнётся на нульпоинтер или еще чего. Я всегда работаю с памятью напрямую и указатели на неё так же регулирую сам, ведь в этом то и есть суть гибкости С++. low - level - это assembler во всех вариациях. С++ - это как раз таки относительно высокий уровень. Точнее это тот уровень, выше которого я считаю не разумным подниматься из - за потери контроля над возможностями (иначе я б торчал на ветке C# или на Java )
0
|
|||||
|
306 / 101 / 18
Регистрация: 04.07.2014
Сообщений: 571
|
|
| 25.09.2014, 11:07 | |
|
Mr.X, для ссылки пользуйтесь первыми тремя пунктами.
Ссылка объект иной, нежели указатель. Добавлено через 5 минут Scrooge McDuck, всё потому, что на С++ Вы не программировали.
0
|
|
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
||
| 25.09.2014, 11:15 | ||
|
1
|
||
|
2405 / 1935 / 763
Регистрация: 27.07.2012
Сообщений: 5,574
|
|||||||||||
| 25.09.2014, 11:32 | |||||||||||
|
Я посерединке ставлю с пробелами:
0
|
|||||||||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 25.09.2014, 11:43 | |
|
0
|
|
|
2405 / 1935 / 763
Регистрация: 27.07.2012
Сообщений: 5,574
|
|||||||
| 25.09.2014, 11:49 | |||||||
0
|
|||||||
|
3225 / 1752 / 436
Регистрация: 03.05.2010
Сообщений: 3,867
|
|
| 25.09.2014, 12:42 | |
|
0
|
|
|
Форумчанин
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
||
| 25.09.2014, 15:54 | ||
|
Но параметры в столбик то мы тоже пишем - так можно дать комментарий по каждому из них. Вот только эти ацкие пробелы... Добавлено через 1 минуту С ними держать код с ограничительной чертов в 80 или хотя бы 100 символов - напряжно.
0
|
||
|
Модератор
|
||
| 25.09.2014, 17:42 | ||
|
А обсуждение разного стиля оформления кода можно продолжить в более подходящем для таких обсуждений разделе и более адекватной, на мой взгляд, теме.
0
|
||
|
Заблокирован
|
|||
| 25.09.2014, 18:08 [ТС] | |||
|
С чего ты взял, что вопросы про звёздочку как - то говорят о моей репутации ? Интересно же, как другие кодят, всегда можно что - то для себя подчеркнуть. Да и вообще форум и сделан для общения или ты думаешь, что руководитель разработки топовой компании не имеет права на форуме вопросы нубские задавать ? ![]()
0
|
|||
|
1 / 1 / 0
Регистрация: 29.02.2016
Сообщений: 3
|
|||||||||||||||||||||
| 05.05.2019, 10:36 | |||||||||||||||||||||
|
Еще взгляд на "звездочку" в объявлении указателя:
нечитаемый текст:
1
|
|||||||||||||||||||||
| 05.05.2019, 10:36 | |
|
Объявление указателя на структуру в объявлении структуры Объясните объявление указателя на объект класса
Как наиболее красиво писать объявление функций? Объявление глобального указателя всего проекта Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|