Метод best будет использовать текстовый файл ASCII:
0,0
3,1416
3.90798504668055
в том смысле, что он будет переносимым и будет работать с любой реализацией с плавающей запятой до определенной степени.
Чтение необработанных двоичных данных из адреса памяти double
вообще не переносимо и обязательно приведет к сбою в какой-то другой реализации.
Конечно, вы можете использовать двоичный формат для компактности, но переносимая функция C, пишущая в этом формате, совсем не будет выглядеть как ваш фрагмент.
По крайней мере, код должен быть окружен серией ifs / ifdefs, проверяющих, что представление памяти double
s, используемое текущей машиной, точно совпадает с ожидаемым интерпретатором Python.
Написание такого кода было бы затруднительно, поэтому я предлагаю простое, чистое, переносимое и удобочитаемое решение текста ASCII.
Это будет мое определение "лучшего".