У меня есть функция, которая принимает unsigned long * и должна передать ее внешней библиотеке, которая принимает unsigned int *, а на этой платформе unsigned int / long имеют тот же размер.
void UpdateVar(unsigned long* var) {
// this function will change the value at the address of var
ExternalLibAtomicUpdateVar((unsigned int*)var); // lib atomically updates variable
}
Это генерирует предупреждение о нарушении правил строгого псевдонима. Есть ли какие-то обходные пути?
Спасибо
Редактировать: Прошу прощения за непонятность. Код представляет собой атомарное обновление, поэтому обход библиотеки для его хранения не вариант. Я мог бы перейти к сборке, но я бы хотел сделать это на C ++.