Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
18 / 18 / 1
Регистрация: 27.01.2010
Сообщений: 150
1

правило Константы слева

17.12.2011, 16:21. Показов 2453. Ответов 22
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Еще давно научили этому, чтобы писать в условиях сначала константу, а потом переменную которая проверяется. А сейчас рефакторил проект и возникла вопрос насколько широко это распространено? Помогает ли это, кроме случаев ероров на const = variable ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2011, 16:21
Ответы с готовыми решениями:

Комбинаторно- вероятностный смысл константы пи, гамма функция и обобщение константы пи
Добавлено через 33 минуты Известна формула для выражения \pi, ...

Правило Саррюса (правило треугольников, метод звездочки) Pascal
привет, всем активным участникам форума. помогите, пожалуйста, написать программу на языке Pascal ....

Как в Eclipse закрепить окно для консоля слева в столбик, а то постоянно ставлю его слева, потом перезахожу и
оно снова внизу?

константы
Ребят появился такой вопрос, разбираюсьв константах, там в общем благодоря такому примеру...

22
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
17.12.2011, 16:27 2
Цитата Сообщение от AC-93 Посмотреть сообщение
правило Константы справа
может слева?

p.s. впервые об этом правиле слышу)
0
18 / 18 / 1
Регистрация: 27.01.2010
Сообщений: 150
17.12.2011, 16:33  [ТС] 3
Упс, да, слева
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
17.12.2011, 16:34 4
Цитата Сообщение от sandye51 Посмотреть сообщение
впервые об этом правиле слышу)
например
C
1
if (NULL == (file = fopen(...)))
1
18 / 18 / 1
Регистрация: 27.01.2010
Сообщений: 150
17.12.2011, 16:36  [ТС] 5
название темы теперь не поправить, чтобы слева было?

Добавлено через 1 минуту
Ну так кто как пишет? и например в
C
1
for(i = 0; i < n ; ++i) или for(i = 0; n > i ; ++i) n = const
Тема переименована
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
17.12.2011, 16:38 6
Цитата Сообщение от AC-93 Посмотреть сообщение
например в
C
1
for(i = 0; i < n ; ++i)
C
1
 или for(i = 0; n > i ; ++i)
n = const
ИМХО здесь это только усложняет восприятие кода, а вот "одинарный" случай с if вполне удобен
0
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
17.12.2011, 16:41 7
int const * const i = NULL;
вполне валидно, да
тут кому как больше нравится
0
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
17.12.2011, 16:46 8
Jupiter, это понятно) просто не видел таких рекомендаций.
я вот наоборот константы всегда справа пишу)
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
17.12.2011, 16:49 9
А теперь задачка на скорость сообразительности
C
1
2
3
4
5
6
7
void foo(const char **p) { }
void bar(char **p) { }
 
int main(int argc, char **argv) {
     bar(argv); // ok
     foo(argv); // warning
}
0
18 / 18 / 1
Регистрация: 27.01.2010
Сообщений: 150
17.12.2011, 16:56  [ТС] 10
не должно быть варнинга.
0
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
17.12.2011, 17:06 11
Цитата Сообщение от AC-93 Посмотреть сообщение
не должно быть варнинга
а он есть, сам ни раз сталкивался. Не понимаю почему..

например тут вообще ошибка. Почему?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
 
class link
{
    int value;
    link *prev;
    link *next;
public:
    explicit link(int value) :
        value(value), prev(), next()
    {
    }
 
    link(int v, const link* pr, const link* nx) :
        value(v), prev(pr), next(nx)
    {
    }
 
    ~link()
    {
        delete prev;
        delete next;
    }
};
 
int main()
{
    link(1, new link(1), new link(2));
    return 0;
}
хотя сам уже допер почему)

а в предыдущем примере пока непонятно..)
0
387 / 151 / 16
Регистрация: 12.05.2011
Сообщений: 450
17.12.2011, 17:08 12
Цитата Сообщение от AC-93 Посмотреть сообщение
не должно быть варнинга.
ага, на самом деле там будет ошибка компилляции

Добавлено через 1 минуту
в си - варнинг,
в плюсах - ошибка компилляции
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
17.12.2011, 17:19 13
Цитата Сообщение от AC-93 Посмотреть сообщение
не должно быть варнинга.
Должен быть. Проверьте, если хотите
0
18 / 18 / 1
Регистрация: 27.01.2010
Сообщений: 150
17.12.2011, 18:55  [ТС] 14
Цитата Сообщение от fasked Посмотреть сообщение
Должен быть. Проверьте, если хотите
проверил, vs2008 варнинги 4 лвл,

C
1
2
3
Warning 1   warning C4100: 'p' : unreferenced formal parameter  x:\учебные\программирование 2011\1\1.c   1
Warning 2   warning C4100: 'p' : unreferenced formal parameter  x:\учебные\программирование 2011\1\1.c   2
Warning 3   warning C4100: 'argc' : unreferenced formal parameter   x:\учебные\программирование 2011\1\1.c   4
на 3 уровне их 0
0
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
17.12.2011, 19:08 15
AC-93, проверить не сложно.. а вот объяснение этому..)
0
18 / 18 / 1
Регистрация: 27.01.2010
Сообщений: 150
17.12.2011, 19:44  [ТС] 16
Так нету варнингов!
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
17.12.2011, 20:25 17
Не понимаю смысла. Зачем писать
C++
1
if (5==x)
? Что это даст? Компилятор построит тот же самый код, что и для
C++
1
if (x==5)
, зато во втором случае не будешь тормозить при наборе, тратить время и мозг на переворачивание равенства, а значит меньше вероятность ошибиться где нибудь по соседству с этой строчкой, так как можно потратить высвободившиеся ресурсы на обдумывание соседних строк.
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
17.12.2011, 20:26 18
Цитата Сообщение от AC-93 Посмотреть сообщение
Так нету варнингов!
Это в очередной раз доказывает качество компилятора от Майкрософт
Цитата Сообщение от sandye51 Посмотреть сообщение
а вот объяснение этому
Ну думайте
Цитата Сообщение от taras atavin Посмотреть сообщение
Что это даст?
Избегать ошибок набора приравнивания вместо сравнения.
C
1
2
if(5 = a) // ошибка компиляции
if(a = 5) // нет ошибок компиляции
Цитата Сообщение от taras atavin Посмотреть сообщение
зато во втором случае не будешь тормозить при наборе, тратить время и мозг на переворачивание равенства, мозг на то, а значит меньше вероятность ошибиться где нибудь по соседству с этой строчкой.
Дело привычки.
0
18 / 18 / 1
Регистрация: 27.01.2010
Сообщений: 150
17.12.2011, 20:31  [ТС] 19
глупо говорить о преимуществе одного компилятора над другим не указывая версию и ос. По теме спс, понял.
0
Эксперт С++
5043 / 2622 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
17.12.2011, 20:32 20
Цитата Сообщение от AC-93 Посмотреть сообщение
глупо говорить о преимуществе одного компилятора над другим не указывая версию и ос.
Я лично руководствуюсь стандартом языка Си
0
17.12.2011, 20:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2011, 20:32
Помогаю со студенческими работами здесь

Константы
Кто подскажет какие есть системные константы в VFP??

Константы
Я делаю интерфейс констант public interface Constants { final double A=10; final double...

Константы
Здравствуйте. Как объявить и заюзать константу в Turbo Prolog? Написал вот так: CONSTANTS ...

константы
у меня немного глупый вопрос.......но как прописывать массив в константах?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru