Сегодня я наткнулся на кусок кода, который мне выглядел ужасно. Части были болтались в разных файлах, я попытался написать суть его в простом тестовом примере ниже. Кодовая база обычно сканируется с помощью FlexElint ежедневно, но эта конструкция закладывается в коде с 2004 года. < /P>
Дело в том, что функция, реализованная с помощью параметра, используя ссылки, вызывается в качестве функции с прохождением параметра с использованием указателей ... из -за выполнения функции. Конструкция работает с 2004 года на IRIX, и теперь, когда его портиция действительно работает над Linux/GCC.
Это конструкция, которой можно доверять? Я могу понять, реализуют ли конструкторы компилятора передачу ссылки, поскольку это было указателем, но надежно ли это? Есть ли скрытые риски?
Должен ли я изменить Fref (..) для использования указателей и торможения риска в процессе?
Что вы думаете?#include
#include
using namespace std;
// ----------------------------------------
// This will be passed as a reference in fref(..)
struct string_struct {
char str[256];
};
// ----------------------------------------
// Using pointer here!
void fptr(string_struct *str)
{
cout
Подробнее здесь: https://stackoverflow.com/questions/259 ... h-pointers