В вашем конкретном случае sample_func_two
- это потенциально быстрее.Это потому, что вы вызываете внешнюю функцию, printf
:
printf("%d", sample_instance->sample_member);
Компилятор, вероятно, не знает, что этот вызов не изменит *sample_instance
1 , поэтомуон будет перезагружать sample_member
из памяти каждый раз в цикле.
Теперь, что касается фактической разницы во времени выполнения вашей программы, вам придется тестировать ее самостоятельно.
1 Компилятор не знает, потому что он не может видеть код printf
(он где-то в библиотеке), а printf
не объявлен как чистый.Фактически, printf
нельзя объявить чистым, потому что в зависимости от строки формата, которую он может записать через свои аргументы (с %n
).