Запитання з тегом «abi»

(Бінарний інтерфейс програми) визначає інтерфейс низького рівня між програмами, бібліотеками та операційною системою. Наприклад, які регістри використовуються для передачі параметрів функції.

5
Чи допускає стандарт C ++, щоб неініціалізований bool збів програму?
Я знаю, що «невизначена поведінка» в C ++ може в значній мірі дозволити компілятору робити все, що завгодно. Однак у мене стався збій, який мене здивував, оскільки я припускав, що код досить безпечний. У цьому випадку справжня проблема траплялася лише на певній платформі з використанням конкретного компілятора, і лише за …

16
Що таке бінарний інтерфейс програми (ABI)?
Я ніколи чітко не розумів, що таке ІПС. Будь ласка, не вказуйте мені на статтю у Вікіпедії. Якби я міг це зрозуміти, я б тут не розміщував такого довгого повідомлення. Це мій погляд на різні інтерфейси: Телевізійний пульт - це інтерфейс між користувачем та телевізором. Це існуюча сутність, але марна …

9
Різниця між API та ABI
Я новачок у системному програмуванні Linux і натрапив на API та ABI під час читання системного програмування Linux . Визначення API: API визначає інтерфейси, за допомогою яких одна частина програмного забезпечення спілкується з іншою на рівні джерела. Визначення ABI: Тоді як API визначає інтерфейс джерела, ABI визначає бінарний інтерфейс низького …
194 api  abi 

10
Чи є якісь мінуси для передачі структур за значенням у C, а не передачі вказівника?
Чи є якісь мінуси для передачі структур за значенням у C, а не передачі вказівника? Якщо структура є великою, очевидно, є виконуючий аспект копіювання безлічі даних, але для меншої структури вона в основному повинна бути такою ж, як передача декількох значень функції. Це може бути навіть цікавіше, коли вони використовуються …

4
Які умови виклику для системних дзвінків UNIX та Linux на i386 та x86-64
Наступні посилання пояснюють умови використання системних викликів x86-32 для UNIX (BSD-аромат) та Linux: http://www.int80h.org/bsdasm/#system-calls http://www.freebsd.org/doc/en/books/developers-handbook/x86-system-calls.html Але які умови системного виклику x86-64 як для UNIX, так і для Linux?
147 linux  unix  assembly  x86-64  abi 


4
Як я безпечно передаю об'єкти, особливо STL-об’єкти, до DLL і з нього?
Як я передаю об'єкти класу, особливо об'єкти STL, до DLL C ++? Моя програма повинна взаємодіяти з сторонніми плагінами у вигляді файлів DLL, і я не можу контролювати, з якого компілятора ці плагіни побудовані. Я знаю, що для об'єктів STL немає гарантованого ABI, і я стурбований причиною нестабільності в моєму …
106 c++  windows  dll  stl  abi 


3
Чи безпечно пов’язувати об’єкти C ++ 17, C ++ 14 та C ++ 11
Припустимо, у мене є три скомпільовані об'єкти, всі створені одним і тим же компілятором / версією : A був складений за стандартом C ++ 11 B був складений за стандартом C ++ 14 C був складений за стандартом C ++ 17 Для простоти припустимо, що всі заголовки були написані на …
101 c++  c++11  linker  c++14  abi 

4
Чому T * може бути передано в регістр, але унікальний_ptr <T> не може?
Я дивлюся розмову Чендлера Каррута в CppCon 2019: Абстракції з нульовою вартістю немає в ній він дає приклад того , як він був здивований тим , як багато накладних витрат ви понесете при використанні std::unique_ptr&lt;int&gt;зловмисника int*; цей сегмент починається приблизно в момент часу 17:25. Ви можете ознайомитись з результатами компіляції …

1
Чому виділяється пам'ять стека, коли вона не використовується?
Розглянемо наступний приклад: struct vector { int size() const; bool empty() const; }; bool vector::empty() const { return size() == 0; } Створений код складання для vector::empty(за допомогою кланг, з оптимізаціями): push rax call vector::size() const test eax, eax sete al pop rcx ret Чому він виділяє стековий простір? Він …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.