Я полагаю, что причина, по которой вы видите нулевое время выполнения для f1()
в режиме выпуска, заключается в том, что компилятор оптимизирует функцию.Поскольку ваш цикл for
не имеет блока кода, он может быть эффективно извлечен во время компиляции.
Я предполагаю, что эта оптимизация не выполняется в режиме отладки, что объясняет, почему вы видите более длительное время выполнения.Он варьируется между запусками просто потому, что ваш планировщик ОС (почти наверняка) не гарантирует фиксированный интервал времени для процессов.
Что касается того, почему вы можете использовать printf()
, если вы явно не включили <cstdio>
, это потому, чтоиз <iostream>
include.
Если посмотреть мои заголовки на C: \ Program Files \ Microsoft Visual Studio 10.0 \ VC \ include , я вижу, что iostream включает istream и ostream , оба из которых включают ios , который включает xlocnum , который включает в себя cstdlib и cstdio .