Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 14:17   #11
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

сейчас сравнил размер скомпилированного файла без inline и с inline. Размеры идентичы. Поидее, подставляя функцию, размер должен увеличиваться... к тому же, я повторил эту функцию два раза. Размер остался прежним. Компилирую через gcc.
Артэс вне форума Ответить с цитированием
Старый 29.05.2010, 14:24   #12
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Если компилятор исполнит ваше пожелание, то разницы не будет совсем. Но он может и без inline оптимизировать так, что разницы опять же не будет совсем. Капризы компилятора непредсказуемы в общем случае.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 29.05.2010, 14:24   #13
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Не оптимизируй, пока это не понадобится, как-то так звучит, не помню точно.
Превыше всего читаемость, а у switch() она побольше будет, да и сделать со switch() разные штуки удобней, чем с if.. else if ...
А насчет inline : пока вам это не нужно, лучше не писать, ибо нынче компиляторы сами лучше находят места, хде функцию встроить, а хде нет.
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Старый 29.05.2010, 14:29   #14
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
Не оптимизируй, пока это не понадобится, как-то так звучит, не помню точно.
Если точнее -
Цитата:
Преждевременная оптимизация - корень все зол.
Дональд Кнут
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 29.05.2010, 14:47   #15
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

В общем много кто такое говорил и разными словами, но смысл всё равно один =)
Хотя это уже оффтоп.
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Старый 29.05.2010, 15:00   #16
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Если так важна скорость работы, то нужно анализировать входные и выходные данные и т.п. Может тут не нужны ни if, ни switch, а лучше все возможные значения поместить в коллекцию с быстрым поиском по ней. Или вообще сравнивать не строки, а их хеши. Тут миллиард вариантов оптимизации можно придумать и выбор наиболее подходящего из них зависит от задачи. А вообще может там и цикл не нужен будет и следует кардинально изменить алгоритм работы программы.
pu4koff вне форума Ответить с цитированием
Старый 29.05.2010, 15:12   #17
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Понятно. А как быть с переменными? Например, если все делать в функции main, то и других функций не нужно, и переменных глобальных тоже не надо. А если распределять задачи по функциям, то придется делать переменные глобальными, что бы все функции могли к ним обратиться, а это опять же влияет на скорость работы. Ведь проще считать и записать значения в локальную переменную, чем в глобальную (опять же по несколько раз за секунду).
Артэс вне форума Ответить с цитированием
Старый 29.05.2010, 15:23   #18
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Во-первых, есть такая вещь, как передача параметров в функцию. Даже более того - передача параметров по указателю и ссылке.
Во-вторых, если уж совсем все делать в функции main, то на кой нам функции, страшные-престрашные классы (про шаблоны, STL, исключения и прочие ужасти я вообще молчу)!
В-третьих, а вы уверены, что вашей программе действительно необходима хоть какая-то оптимизация. По-моему, для ваших программ главный критерий - чтоб работало правильно, а уж оптимизацию оставьте до более-менее крупных проектов.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 29.05.2010, 15:23   #19
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Во-первых, есть такая вещь, как передача параметров в функцию. Даже более того - передача параметров по указателю и ссылке.
Во-вторых, если уж совсем все делать в функции main, то на кой нам функции, страшные-престрашные классы (про шаблоны, STL, исключения и прочие ужасти я вообще молчу)!
В-третьих, а вы уверены, что вашей программе действительно необходима хоть какая-то оптимизация. По-моему, для ваших программ главный критерий - чтоб работало правильно, а уж оптимизацию оставьте до более-менее крупных проектов.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 29.05.2010, 15:30   #20
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Про передачу параметров известно, но если в этой функции цикл или какой либо код повторяется, и нужно из функции обратиться к переменной не один раз...

а вообще какие минусы или уязвимости могут быть у глобальных переменных? Стоит ли их избегать, и стараться как можно меньше делать глобальных переменных, или на против, не бояться и сразу объявить все нужное?
Артэс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на switch ProgramerBeatz Общие вопросы C/C++ 12 25.01.2011 00:59
switch Dimarik Общие вопросы C/C++ 4 11.04.2010 15:56
switch и string??? i-cpp Общие вопросы C/C++ 7 12.02.2010 14:58
SWITCH 8 портовый SKS Компьютерное железо 3 29.01.2009 03:39
Switch Division Общие вопросы C/C++ 3 11.01.2009 23:52