Автор: cheops (06.03.2012 в 01:38)
Вообще, конечно, нужно просто обе переменные объявить как char и не мучиться (вам же int только для x нужен)
...
char key;
char byte;
... |
>Но в моем случае как понимаю - это не будет работать.
Работать, кстати, будет, я взял вашу программу, поправил только эту строку (int)key == byte, передал файл в качестве параметра и все отлично работает (я даже вручную перепроверил - все корректно). Просто в int 3 байта из 4-х не будут работать, а будет использовать только один, однако, поверьте используя char много не съэкономите :))), процессор все-равно не умеет меньше чем 32-битами управлять, а новые так вообще 64 хотят, а это значит что каждый одно-байтный char выравнивается таким образом, чтобы его можно было "скормить" процессору в виде 4 байт. Однако компилятор считает своим долгом вас подтолкнуть к использованию двух char, что собственно всех правильнее в этом случае, поэтому и капризничает...
PS Если наводящие/новые вопросы появятся, давайте для них новую тему заведем, чтобы потом их искать и ссылаться на них удобнее было.