Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
_RoleX_
0 / 0 / 0
Регистрация: 30.03.2014
Сообщений: 12
#1

Как сделать компактный код ? - C++

31.03.2014, 15:00. Просмотров 683. Ответов 20
Метки нет (Все метки)

Ребят, дайте советы по тому как сделать свой код компактнее, красивее и читабельней.
Вот пример моего стиля программирования :

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
#include <cstdlib>
using namespace std;
void pluss(int number1, int number2);
void minuss(int number1, int number2);
int main(int argc, char* argv[])
{
        setlocale(LC_ALL, "Russian");
        int fNumber_1;
        int fNumber_2;
        int nSelect;
 
        do{
        cout << "Введите число № 1\n";
        cin >> fNumber_1;
        cout << "Введите число № 2\n";
        cin >> fNumber_2;
        cout << "Какое действие хотите сделать?\n";
        cout << "1.Сложить\n";
        cout << "2.Вычесть\n";
        cin >> nSelect;
        switch(nSelect)
        {
        case 1 :
            pluss(fNumber_1, fNumber_2);
            break;
        case 2 : 
            minuss(fNumber_1, fNumber_2);
            break;
        }
        }while(nSelect);
        system("PAUSE");
        return 0;
}
void pluss(int number1, int number2)
{
cout << "Ответ : " << number1 + number2 << '\n';
}
 
 
void minuss(int number1, int number2)
{
cout << "Ответ : " << number1 - number2 << '\n';
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2014, 15:00     Как сделать компактный код ?
Посмотрите здесь:

более компактный код - C++
нужна замыниты вес то что я написал в функции void n() на более компактный код (суть кода выравнивать столбик ) //Calculator ...

Как сделать код меньше - C++
Здравствуйте, вообще меня интересует вопрос как можно уменшить этот код switch(a){ case 1: field=1; break; case 2: field=1; break; ...

Как сделать код абстрактным - C++
pojalusta pomagite u menya est cod dlya igri tetrisa no ya ne mogu sdelot evo abstraktnim!!! esli kto to mojet mne pomoch ...

break или как сделать лучше код - C++
Вообщем делал задание &quot;НАйти первый и последний нулевой элемент&quot;,так вот ,дан рабочий код,ну есть интересующий вопрос ,яхотел бы...

Как сделать данный код более логичным и читаемым? - C++
Здравствуйте. Есть код, который, очевидно, выглядит не совсем логично. Полагаю, что запись в файл нужно сделать отдельной функцией, но вот...

Как переделать код?. Нужно сделать через функции пользователя - C++
#include &lt;string.h&gt; #include &lt;iostream&gt; #include &lt;algorithm&gt; using namespace std; int main() { char *st=new...

Плохой калькулятор: как его сделать нормальным? (улучшить код) - C++
Как его сделать нормальным ? :cry: #include &lt;functional&gt; #include &lt;iostream&gt; #include &lt;sstream&gt; #include &lt;string&gt; #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тамика
Котовчанин
870 / 450 / 143
Регистрация: 16.02.2010
Сообщений: 2,954
Записей в блоге: 27
31.03.2014, 15:57     Как сделать компактный код ? #16
Цитата Сообщение от SatanaXIII Посмотреть сообщение
А так просто вытягиваете тот метод, который нужен и всё.
Я про то, как написанно в моём коде.

Добавлено через 44 секунды
Цитата Сообщение от aLarman Посмотреть сообщение
аргументируйте
Экономия памяти. Вместо создания копий, туда придет именно переменная, которую передали в функцию.
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
31.03.2014, 16:15     Как сделать компактный код ? #17
Цитата Сообщение от Тамика Посмотреть сообщение
туда придет именно переменная, которую передали в функцию.
а то что ссылка скопируется это не в счет да
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
31.03.2014, 16:16     Как сделать компактный код ? #18
Цитата Сообщение от Тамика Посмотреть сообщение
Экономия памяти.
вот почитайте http://stackoverflow.com/questions/3...versus-copying
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
31.03.2014, 16:19     Как сделать компактный код ? #19
цитата оттуда "Integers are usually the size of the processor's native word and can pass easily into a registers. From this perspective, there is no difference between passing by value or passing by constant reference. "
DrOffset
7062 / 4203 / 949
Регистрация: 30.01.2014
Сообщений: 6,970
31.03.2014, 16:28     Как сделать компактный код ? #20
Цитата Сообщение от Тамика Посмотреть сообщение
Экономия памяти. Вместо создания копий, туда придет именно переменная, которую передали в функцию.
Вот именно про такие мифы я и говорил.
Ведь никакой экономии здесь не будет. Возможно будет даже расход!
Давай разбираться. sizeof(int) на 32-битной x86 в win равен 4, sizeof(int*) тоже равен 4. Экономии нет. Зато добавляется (возможное) разыменование.
Однако на x64 - sizeof(int *) == 8, а sizeof(int) все еще 4. а вот и расход.
Но это все теория. А теперь к практике:
Рассмотрим такие варианты:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int test1(int a, int b)
{
    return a + b;
}
 
int test2(int const & a, int const & b)
{
    return a + b;
}
 
int main()
{
    test1(1, 2);
    test2(1, 2);
    return 0;
}
А вот что получилось:
Assembler
1
2
3
4
5
6
7
8
9
10
test1:
    mov eax, DWORD PTR [esp+8]
    add eax, DWORD PTR [esp+4]
    ret
test2:
    mov eax, DWORD PTR [esp+4]
    mov edx, DWORD PTR [esp+8]
    mov eax, DWORD PTR [eax]
    add eax, DWORD PTR [edx]
    ret
Что-то не очень похоже на экономию, правда? Ссылки имеют место только для сложных и тяжелых типов.

Добавлено через 6 минут
Добавлю еще, что я специально написал пример так, что запретить компилятору встраивать функции. Если бы он это сделал, то оба варианты были бы абсолютно одинаковы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2014, 16:45     Как сделать компактный код ?
Еще ссылки по теме:

как сделать что-бы код в массиве вывел одинаковые числа? - C++
Помогите по C++,Нужо что-бы числа которые ты повторно ввел в массиве отобразились на екран!! Например : 1 3 4 2 4 5 Вывод : 4 5 ...

Компактный инструмент для создания DLL - C++
Народ привет. Есть небольшой код. Надо сделать DLL . Самое маленькое что нашел - Borland C++ . А есть еще что поменьше ?

Как сделать так, чтобы код вернул НОРМАЛЬНУЮ строку в pName, а не мусор - C++
Короче, либо мне сейчас КТО-НИБУДЬ ПОМОЖЕТ, либо я... :wall: .. нувыпоняли. ВООБЩЕМ #include &lt;iostream&gt; #include &lt;fstream&gt; #include...

Страуструп. Сортировка трех чисел .Как сделать проще код без циклов и массивов? - C++
Напишите программу. предлагающую пользователю ввести три целых числа, а затем выводит их в порядке возрастания, разделяя запятыми ....

Запомнить данные в классе в виде массива слов. Помогите - не код, а совет как сделать. - C++
Здравстуйте! Задание стоит так: Программа должна открыть файл Go.txt и считать с него текстовую информацию в виде отдельных слов. в...


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

Или воспользуйтесь поиском по форуму:
Тамика
Котовчанин
870 / 450 / 143
Регистрация: 16.02.2010
Сообщений: 2,954
Записей в блоге: 27
31.03.2014, 16:45     Как сделать компактный код ? #21
Вот именно про такие мифы я и говорил.
Ведь никакой экономии здесь не будет. Возможно будет даже расход!
Давай разбираться. sizeof(int) на 32-битной x86 в win равен 4, sizeof(int*) тоже равен 4. Экономии нет. Зато добавляется (возможное) разыменование.
Однако на x64 - sizeof(int *) == 8, а sizeof(int) все еще 4. а вот и расход.
Но это все теория. А теперь к практике:
Рассмотрим такие варианты:
Большое спасибо, что объяснили, а не начали паясничать. Правда спасибо, теперь буду знать!
Yandex
Объявления
31.03.2014, 16:45     Как сделать компактный код ?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru