![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
55 Если точнее: Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ Правило 26: Откладывайте определение переменных насколько возможно. Есть ещё в "Стандарты программирования на C++. 101 правило и рекомендация" (Герб Саттер, Андрей Александреску) 18. Объявляйте переменные как можно локальнее. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
первый раз все равно идет чтение в регистр и неважно, где расположена при этом переменная -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
55 я начал читать, но когда понял, что это то же самое что и 35 читать стало лень(а в магазине сказали "они дополняют друг друга") MAKCim, в принципе ты можешь писать в стиле Си -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
archimed7592,
спасибо на самом деле я просто хочу разобраться
эх, если бы кто-нибудь здесь цитату привел а то искать лень -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| GrayCardinal |
|
|||
|
Фигасе ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3039 Регистрация: 9.11.2003 Репутация: 2 Всего: 58 |
SaDFromSpb,
ООП ? Да там проблемы какие-то с распределением памяти были... Да и на самом деле - не нужно оно для ядра... |
|||
|
||||
| UnrealMan |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 722 Регистрация: 30.3.2006 Репутация: 27 Всего: 32 |
Аргументов 2: 1) производительность - в случае неиспользования переменных не должны зря вызываться конструкторы и деструкторы, 2) читабельность/самодокументируемость кода выше, когда переменная объявлена ближе к месту использования и инициализируется в месте объявления (хорошо видно, когда и для чего нужна переменная). Это сообщение отредактировал(а) UnrealMan - 7.11.2007, 14:24 |
|||
|
||||
| tatan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 31.10.2007 Репутация: нет Всего: 1 |
Внимательно все прочитал
Лично я наверное буду по-паскалевски объявлять переменные в начале а для лучшей читаемости кода давать переменным осмысленные имена, ну, видимо, это вера.у каждого подхода есть +- я получу аргументы в пользу той или иной доктрины Жалко, что мы отвлеклись. и если позволите еще важный вопрос, скоре всего из разряда RTFM но не получается у меня. Вынес описание класса в файл dbft.hpp, реализацию в файл dbft.cpp, создал проект с main() в файле dbfex.cpp. В файле dbft.cpp сделал #include "dbft.hpp", в файле dbfex.cpp - тоже. При компиляции получаю ошибку "In file included from dbfex.cpp" на строке #include "dbft.hpp" в файле dbft.cpp То есть видимо ругается что 2 раза включен Как надо правильно сделать? |
|||
|
||||
| zkv |
|
||||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
что то пока я не заметил ни одного плюса у предварительного объявления переменных защитить хедер от двойного подключения, добавь первой строкой
либо обрами весь код в хедере таким макросом:
Это сообщение отредактировал(а) zkv - 7.11.2007, 16:08 |
||||
|
|||||
| tatan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 31.10.2007 Репутация: нет Всего: 1 |
Пробовал оба варианта
Нет, наверное ругается по другому поводу ошибки в dbft.hpp дальше описываются - типа fstream does not name a type, и тд я правильно сделал включив в файл dbft.hpp строки ? #include <cstdlib> #include <iostream> #include <fstream> #include <vector> #include <string> #include <sstream> Без них собствено те же ошибки Блин Добавлено через 11 минут и 15 секунд Ура, заработало! инклюдить надо после using namespace std а то компилер ничего не находит Всем спасибо |
|||
|
||||
| zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
лучше не использовать - плохой тон из дежавю копировал, поэтому на форматирование не жаловаться
|
|||
|
||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
Использовать EBP в качестве того, для чего он предназначен изначально — расточительство. Visual Studio 6, к примеру (Release), использует EBP как регистр общего назначения. Переменные адресуются по ESP (да, это сложнее, на то он и компилятор, чтобы справиться, он и справляется). Подозреваю, что и другие компиляторы не разбрасываются регистрами. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
использование ESP, +1 байт к каждой инструкции расточительно, однако тут надо соблюдать равновесие между оптимизацией по скорости и размеру Добавлено через 3 минуты и 29 секунд zkv, спасибо за ссылку -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |