Более общая проблема заключается в том, что вам нужно знать, какой размер переменных был на машине, на которую записан файл, а не на машине, которая их читает.Другими словами, вы можете сказать sizeof (int) и получить скажем 8 в какой-нибудь сумасшедшей 64-битной системе, но если файл был сохранен на обычной 32-битной машине, sizeof (int) может быть 4 (или даже 2, в соответствии с ANSI).с, я думаю).Команда sizeof сообщит вам размер int или что-то еще на вашей локальной машине во время компиляции.Но он ничего не может сказать о машине, на которой сохранен файл.
Лучше всего узнать, определяет ли стандарт TDMS (я не знаком с ним) переменные размеры.Если это так, вы должны использовать их, а не sizeof.
Плохой второй вариант - иметь тестовую последовательность в начале файла и динамически корректировать размеры переменных, пока вы не сможете правильно прочитать тестовую последовательность.