Во-первых, printf и scanf - это всего лишь имена функций, которые лежат в какой то там библиотеке. На каком языке они написаны значения не имеет, поскольку они уже откомпилированы, и представляют из себя объектный код.
Во-вторых, cin и cout не являются операторами, это всего лишь объекты соответствующих классов, а сам ввод/вывод делают операторы << и >> (собственно - тоже функции, и тоже в какой то там библиотеке) .
Когда пишешь printf(строка форматирования, список параметров) , то вызывается один раз соответствующая функция с большим числом параметров.
Аналог с cout вызывает много раз оператор << с парой параметров (cout + один очередной параметр для вывода) .
А дизассемблировать смысла нет, в первом случае будет запихивание параметров в стек и call один раз, во втором - тоже самое, но несколько раз. Все что написали предыдущие постеры - чушь полная, потому что после компиляции у вас будет объектный код (команды центрального процессора) , а каким образом он получился (парадигмы, и пр. ) значения не имеет.
Другие языки программирования и технологии
Почему операторы printf, scanf работают быстрее cin cout в С++??
эмм. . потому что это printf и scanf были получены в наследство от С, а два других реализованы по совершенно иной парадигме программирования? А по сути - вы как замеряли, секундомером? лично я не замечал особой разницы
Станислав "ex"
Среда выводит время выполнения программы))
Потому что на них уже подключины быблиотеки а при вызове cin, cout надо обращатся к библиотеке .
принтф и сканф реализованы на структурированном программировании, а cout и cin реализованы на объектно ориентированном... .
как известно структурированное выполняется быстрее....
как известно структурированное выполняется быстрее....
Какие из них работают быстрее, я не знаю. Но если тебе любопытно, то можешь написать четыре программы в каждой из которых напиши по одному из подъопытных. После компиляции дезассемблируй программы (IDA-очень хороший дизасм, или отладчик, если под виной то OllyDebuger) и смотри во что превратились твои операторы. Чем больше машинных команд, а так же в зависимости от самих команд (разные команды выполняюся за разное число тактов) увеличивается время выполнения оператора.
Похожие вопросы
- Программисты С/С++, объясните есть ли отличия в операторах ввода/вывода (cin/cout от printf/scanf)
- С++ cin cout. Не работает программа.
- как заставить торрент работать быстрее???
- Подскажите какие есть программы для улучшение комьетера ну там чтоб работал быстрей
- Win7 64бит работает быстрее чем 32бит? и производителность системы будет + или - ?жрет много Ram? Intel Core i5.
- Вопрос по Си. if ((i++)==10) и i++ if (i==10) будет ли первый пример работать быстрее чем второй?
- На сколько программа на C++ работает быстрее чем на delphi
- Почему на Mac-ах работает множество дизайнеров ?
- Почему все крутые дизайнеры работают на Mac? Не в понтах(цене) же все дело?
- HTML отображается, а PHP нет, почему? я только начинаю работать с PHP. Прошу сильно не пинать!