![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
сейчас сравнил размер скомпилированного файла без inline и с inline. Размеры идентичы. Поидее, подставляя функцию, размер должен увеличиваться... к тому же, я повторил эту функцию два раза. Размер остался прежним. Компилирую через gcc.
|
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
![]()
Если компилятор исполнит ваше пожелание, то разницы не будет совсем. Но он может и без inline оптимизировать так, что разницы опять же не будет совсем. Капризы компилятора непредсказуемы в общем случае.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
![]() |
![]() |
![]() |
#13 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
![]()
Не оптимизируй, пока это не понадобится, как-то так звучит, не помню точно.
Превыше всего читаемость, а у switch() она побольше будет, да и сделать со switch() разные штуки удобней, чем с if.. else if ... А насчет inline : пока вам это не нужно, лучше не писать, ибо нынче компиляторы сами лучше находят места, хде функцию встроить, а хде нет. |
![]() |
![]() |
![]() |
#14 | ||
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
![]() Цитата:
Цитата:
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
||
![]() |
![]() |
![]() |
#15 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 328
|
![]()
В общем много кто такое говорил и разными словами, но смысл всё равно один =)
Хотя это уже оффтоп. |
![]() |
![]() |
![]() |
#16 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
Если так важна скорость работы, то нужно анализировать входные и выходные данные и т.п. Может тут не нужны ни if, ни switch, а лучше все возможные значения поместить в коллекцию с быстрым поиском по ней. Или вообще сравнивать не строки, а их хеши. Тут миллиард вариантов оптимизации можно придумать и выбор наиболее подходящего из них зависит от задачи. А вообще может там и цикл не нужен будет и следует кардинально изменить алгоритм работы программы.
|
![]() |
![]() |
![]() |
#17 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
Понятно. А как быть с переменными? Например, если все делать в функции main, то и других функций не нужно, и переменных глобальных тоже не надо. А если распределять задачи по функциям, то придется делать переменные глобальными, что бы все функции могли к ним обратиться, а это опять же влияет на скорость работы. Ведь проще считать и записать значения в локальную переменную, чем в глобальную (опять же по несколько раз за секунду).
|
![]() |
![]() |
![]() |
#18 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
![]()
Во-первых, есть такая вещь, как передача параметров в функцию. Даже более того - передача параметров по указателю и ссылке.
Во-вторых, если уж совсем все делать в функции main, то на кой нам функции, страшные-престрашные классы (про шаблоны, STL, исключения и прочие ужасти я вообще молчу)! В-третьих, а вы уверены, что вашей программе действительно необходима хоть какая-то оптимизация. По-моему, для ваших программ главный критерий - чтоб работало правильно, а уж оптимизацию оставьте до более-менее крупных проектов.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
![]() |
![]() |
![]() |
#19 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
![]()
Во-первых, есть такая вещь, как передача параметров в функцию. Даже более того - передача параметров по указателю и ссылке.
Во-вторых, если уж совсем все делать в функции main, то на кой нам функции, страшные-престрашные классы (про шаблоны, STL, исключения и прочие ужасти я вообще молчу)! В-третьих, а вы уверены, что вашей программе действительно необходима хоть какая-то оптимизация. По-моему, для ваших программ главный критерий - чтоб работало правильно, а уж оптимизацию оставьте до более-менее крупных проектов.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
![]() |
![]() |
![]() |
#20 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
![]()
Про передачу параметров известно, но если в этой функции цикл или какой либо код повторяется, и нужно из функции обратиться к переменной не один раз...
а вообще какие минусы или уязвимости могут быть у глобальных переменных? Стоит ли их избегать, и стараться как можно меньше делать глобальных переменных, или на против, не бояться и сразу объявить все нужное? |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача на 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 |