Я не знаю конкретной причины, по которой автор написал ее, и я не знаком со стилем написания библиотеки - поэтому я собираюсь ответить в общих чертах на программы на C ++.
Я предполагаю предпочтениедано потому, что современный C ++ обычно предпочитает другие идиомы, многие из которых были разработаны, чтобы избежать или минимизировать проблемы, часто возникающие из-за препроцессора и необработанных указателей.
Избегайте указателей
Вместоуказателя, в C ++ принято использовать ссылку на объект или контейнер, такой как вектор, для коллекции объектов.
//////// For an object
//// Using a pointer
bool getURL(t_url* const outUrl);
// In use:
bool result(obj.getURL(&outUrl));
//// versus using a reference
bool getURL(t_url& outUrl);
// In use:
bool result(obj.getURL(outUrl));
//////// For a collection
//// Using a pointer
bool apply(const double* const values, const size_t& count);
// In use:
bool result(obj.apply(array, count));
//// versus using a container
bool apply(const std::vector<double>& values);
// In use:
bool result(obj.apply(values));
Даже указателям могут быть присвоены контейнеры объектов (автоматический указатель, умныйуказатель, общий указатель, слабый указатель), поскольку при работе с необработанными указателями, особенно в клиентском коде, может быть много сложностей или двусмысленностей.Я редко пишу программы на C ++, которые принимают или возвращают необработанные указатели.
Избегать определений
Препроцессор / определения также обычно не является предпочтительным подходом в C ++ - у вас естьвстроенные функции, анонимные пространства имен, шаблоны и перечисления.
Вездесущий пример макроса, который проблематичен по многим причинам, - #define max(a,b) ((a > b) ? a : b)
против std::max
.
Заключение
Если я вижу программу на C ++, в которой используется значительное количество этих файлов, я задаюсь вопросом, в каком десятилетии она была написана, или же автор писал на диалекте «C с некоторыми дополнительными функциями».
Другой отвечающий сказал, что "совет - это мусор".Я не согласен.Совет в Arduino просто говорит: «избегайте указателей» и «избегайте # define».Конечно, будут моменты, когда вам нужно будет использовать эти средства, но вы можете написать более понятную программу, когда используете средства языка и библиотеки, которые были предназначены для их замены (в общих чертах, они использовались неправильно или были проблематичными). избегать их использования означает использовать их экономно и только в случае необходимости, отдавая предпочтение более современным и идиоматическим альтернативам.