Поделиться через


Выражения MASM и выражения C++

Ниже приведены наиболее значительные различия между вычислением выражений MASM и оценкой выражений C++.

  • В выражении MASM числовое значение любого символа является его адресом памяти. В выражении C++ числовое значение переменной является фактическим, а не его адресом. Структуры данных не имеют числовых значений. Вместо этого они рассматриваются как фактические структуры, и их необходимо использовать соответствующим образом. Значение имени функции или любой другой точки входа — адрес памяти и рассматривается как указатель функции. Если используется символ, который не соответствует типу данных C++ (например, немодифицированному имени модуля), возникает синтаксическая ошибка.

  • Средство оценки выражений MASM обрабатывает все числа как ULONG64 значения. Средство оценки выражений C++ приводит числа к ULONG64 и сохраняет сведения о типе всех типов данных.

  • Средство оценки выражений MASM позволяет использовать любой оператор вместе с любым числом. Средство оценки выражений C++ создает ошибку, если используется оператор вместе с неправильным типом данных.

  • В средство оценки выражений MASM все арифметические выполняются буквально. В вычислителе выражений C++ арифметика указателя масштабируется должным образом и не допускается, если это недопустимо.

  • Выражение MASM может использовать два символа подчеркивания ( __ ) или две двоеточия ( :: ), чтобы указать члены класса. Средство оценки выражений C++ использует только синтаксис двух двоеточия. Выходные данные отладчика всегда используют две двоеточия.

  • В выражении MASM необходимо добавить знак (@) перед всеми, кроме наиболее распространенных регистров. Если этот знак не указан, имя регистра может быть интерпретировано как шестнадцатеричное число или как символ. В выражении C++ этот префикс требуется для всех регистров.

  • Выражения MASM могут содержать ссылки на исходные строки. Эти ссылки указываются серьезными акцентами ( ` ). В выражении C++ нельзя ссылаться на номера исходной строки.

См. также

Номера и операторы MASM

Номера и операторы C++

Примеры смешанных выражений

Расширение знака