OberonCore
https://forum.oberoncore.ru/

Как узнать, сколько времени выполняется процедура?
https://forum.oberoncore.ru/viewtopic.php?f=35&t=6146
Страница 2 из 2

Автор:  Info21 [ Воскресенье, 29 Октябрь, 2017 11:22 ]
Заголовок сообщения:  Re: Как узнать, сколько времени выполняется процедура?

Иван Денисов писал(а):
Александр К писал(а):
Иван Денисов писал(а):
Не связывайтесь с MSDN сейчас.

Почему?

Вся прелесть работы с фреймворком в том, что вы абстрагируетесь от API операционной системы, которая устроена весьма несовершенным образом. Везде, где вы можете не использовать WInApi, я бы порекомендовал его не использовать. Есть задачи, где без этого не обойтись, но смысла новичку копаться в MSDN не вижу.

Опыт сорока лет однозначно подтверждает: изо всех сил минимизируйте привязки к внешним средам.

Уж на что ББ стабилен и надёжен в этом отношении, но и тут -- последние выкрутасы Центра с модификацией ядра вызывают опасения.

Автор:  Trurl [ Воскресенье, 29 Октябрь, 2017 12:06 ]
Заголовок сообщения:  Re: Как узнать, сколько времени выполняется процедура?

Иван Денисов писал(а):
но смысла новичку копаться в MSDN не вижу.

В данном случае новичок и не стал копаться, Написал сигнатуру наугад. А оно не совпало.

Код:
PROCEDURE QueryPerformanceCounter* (VAR [nil] lpPerformanceCount: LONGINT): BOOL;

Автор:  Александр К [ Понедельник, 30 Октябрь, 2017 15:48 ]
Заголовок сообщения:  Re: Как узнать, сколько времени выполняется процедура?

Trurl писал(а):
Код:
PROCEDURE QueryPerformanceCounter* (VAR [nil] lpPerformanceCount: LONGINT): BOOLEAN;

Подскажите, зачем [nil] нужно?

Автор:  Wlad [ Понедельник, 30 Октябрь, 2017 16:29 ]
Заголовок сообщения:  Re: Как узнать, сколько времени выполняется процедура?

Александр К писал(а):
Trurl писал(а):
Код:
PROCEDURE QueryPerformanceCounter* (VAR [nil] lpPerformanceCount: LONGINT): BOOLEAN;

Подскажите, зачем [nil] нужно?

Windows написана (как нам говорят) на C.
QueryPerformanceCounter принимает указатель.
Указатель может быть равен NULL.

Автор:  Александр К [ Понедельник, 30 Октябрь, 2017 17:01 ]
Заголовок сообщения:  Re: Как узнать, сколько времени выполняется процедура?

А если в этой функции VAR заменить на OUT, что-нибудь изменится?

Автор:  Trurl [ Понедельник, 30 Октябрь, 2017 19:01 ]
Заголовок сообщения:  Re: Как узнать, сколько времени выполняется процедура?

Вообще, [nil] здесь не нужно. Но WinApi сгенерирован автоматически, там много такого.
Заменить VAR на OUT можно. По сути ничего не изменится, но будет понятнее.

Автор:  Александр К [ Понедельник, 30 Октябрь, 2017 19:53 ]
Заголовок сообщения:  Re: Как узнать, сколько времени выполняется процедура?

Всем спасибо большое за ответы.

Автор:  Wlad [ Вторник, 31 Октябрь, 2017 19:21 ]
Заголовок сообщения:  Re: Как узнать, сколько времени выполняется процедура?

Александр К писал(а):
А если в этой функции VAR заменить на OUT, что-нибудь изменится?

Методически, если, по смыслу, аргумент "работает на возврат чего-то из функции", НУЖНО.
Бережёного - Бог бережёт.
Ну, и - документирование. Не зря же даже в таком угробище, как Си, программеры (кто по-умней) сами в комментах возле аргументов функций ставят "направление", в котором "работает" аргумент.

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/