kotriks писал(а):забыл как было но помню, что было
если бы вы знали базовые основы Си, то проблем у вас не возникло бы (я намекал, что надо освежить знания языка - вы не обратили внимания).
в Си возможна только единственная форма записи выражения, в котором используется знак присваивания '=' - это когда
левее этого знака находится только переменная, и ничего больше. поэтому оба варианта, которые вы "помните" принципиально неверны.
кроме этого, работа с массивом возможна двумя способами: либо через индексное обращение к его элементам, либо через указатель на его элементы (в сущности, это одно и то же, но для такого опытного программиста, как вы, лучше эти способы разделить). то, что записали вы - не является ни одним из перечисленных способов.
кроме того, вам сразу сказали, что функция у вас ничего не возвращает, и потому все, что она внутри себя делает, никак не может быть использовано (тем более, что написанное вами вообще не может ничего делать - оно неверно, а что надо - пока не ясно).
а теперь конкретика...
kotriks писал(а):взять ключь из 10 символов с еепром и записать через него в i2c чтобы данные были шифрованны этим ключём XOR
умение задавать вопросы - это тоже полезный опыт, который стоит освоить.
"взять ключ" - это как? ключ у вас в массиве Key, как я понимаю? как именно "записать через него" надо данные? данные - это что: байт, несколько байтов, строка или, например, long-числа?
"шифровать" вы собираетесь, как я понимаю, операцией битового XOR... вангую: каждый очередной байт, отправляемый в i2c, надо проXORить с очередным символом из массива Key - так или нет? если так, то ваш код должен быть примерно таким
Код: Выделить всё
char crypt(char data){
static char i;
char result = data ^ Key[i++];
if(i >= SIZE_OF_KEY) i = 0;
return result;
}
это,
возможно, не совсем то, что хотите вы, но это однозначно будет компилироваться и на самом деле будет XORить данные... SIZE_OF_KEY - это константа, задающая размер вашего "ключа".