Есть ли эквивалент этой функции C++ в C?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Есть ли эквивалент этой функции C++ в C?

Сообщение Anonymous »

Я пытаюсь реализовать эту функцию на C, она требует обработки разных типов данных, в C++ я использую только шаблон, а в C не знаю, как с этим справиться.

Код: Выделить всё

template int EEPROM_put(int ee, const T& value) {
const byte* p = (const byte*)(const void*)&value;
unsigned int i;

for (i = 0; i < sizeof(value); i++) foo(ee++, *p++);
return i;
}

template int EEPROM_get(int ee, T& value) {
byte* p = (byte*)(void*)&value;
unsigned int i;

for (i = 0; i < sizeof(value); i++) *p++ = foo(ee++);
return i;
}

Попробуйте следующее, но он принимает только один тип данных, а функция EEPROM_get не работает.

Код: Выделить всё

int EEPROM_put(int ee, u16 value){
const u8* p = (const u8*)(const void*)&value;
unsigned int i;

for (i = 0; i < sizeof(value); i++) {
eeprom_write_1byte(ee++, *p++); Delay_Ms(10);
}
return i;
}

int EEPROM_get(int ee,  u16 value) {
u8* p = (u8*)(void*)&value;
unsigned int i;

for (i = 0; i < sizeof(value); i++) {
*p++ = eeprom_read_1byte(ee++); Delay_Ms(10);
}
return i;
}
Есть ли способ получить эквивалент на C?

Подробнее здесь: https://stackoverflow.com/questions/785 ... ction-in-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»