Здравствуйте, Nuzhny, Вы писали:
N>Очень наглядный пример — это debug и release сборки. Есть у тебя dll, которой ты передаешь, например, std::string или std:: vector. API не меняется, а ABI у debug будет другой...
Это не то, то — это различный формат самих данных, например:
есть у тебя USB-осциллограф, который может отдавать тебе массивы точек в формате {FILETIME time, float voltage}. Ты прочитал формат данных в документации, но обломался: x86 использует Little-Endian, а железка тебе отдаёт Big-Endian.
Потом ты разобрался в чём дело, и ещё раз обломался: ты на C# пишешь — поставил [StructLayout(LayoutKind.Sequential)] и успокоился, не учёл, что значения в структуре DSP-процессор выравнивает совсем не так, как это принято в винде.
Другой пример: решил ты, значит, попрактиковаться с графическими форматами — захотелось руками поковыряться в jpeg. И вот описал ты структурки, все нужные алгоритмы правильно написал — все тесты проходят, но нифига не работает. Угадай почему.
И ведь, сцуко, ни один чат-бот тебе не поможет с таким вопросом, не подскажет куда копать.
Всё сказанное выше — личное мнение, если не указано обратное.