Как можно аналогично использовать такую функцию на C++ unsigned int v27 = __ldar((unsigned int *)(v56 + 4 * v2));
есть ли способы заменить __ldar для cpp или где её можно взять?

5 Окт в 19:40
12 +1
0
Ответы
1

Функция __ldar является специфичной для ассемблерного языка ARM и используется для атомарного чтения значения из памяти. В C++ аналогичной функции в стандартной библиотеке нет.

Однако, вы можете использовать атомарные операции из стандартной библиотеки C++11 (и более поздних версий) для достижения атомарности при работе с данными. Например, вы можете использовать std::atomic для атомарного чтения значения из памяти. Ниже приведен пример использования std::atomic для атомарного чтения значения из памяти:

#include <atomic>
// Инициализируйте объект std::atomic с нужным значением
std::atomic<unsigned int> atomic_value;
// Сделайте атомарное чтение из памяти
unsigned int value = atomic_value.load(std::memory_order_acquire);

Если вам все же необходима функция __ldar, то вам придется использовать инлайн-ассемблер в вашем коде C++ для вызова этой функции. Но имейте в виду, что использование инлайн-ассемблера может сделать ваш код менее переносимым и более сложным для отладки и поддержки.

5 Окт в 19:40
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир