2016-02-16 3 views
2

не может понять, что такое API и ABI в простых словах (без каких-либо определений википедии), являются ли они частью ядра? являются ли они функциями? что они делают ?API AND ABI в двух словах

+0

Вы наводили указатель мыши на теги. Отображаемая информация тега дает объяснение в двух словах довольно хорошо ИМХО. –

+0

Я уже это сделал, это определение Викимедиа –

ответ

1

API - это прикладной программный интерфейс . Он предоставляет возможность для разных компонентов программного обеспечения исходного уровня взаимодействовать друг с другом.

Примером API будет заголовочный файл для библиотеки, который задает набор функций, предоставляемых библиотекой и как их называть. Например, в C++:

//external_library.h 
//Processes your data and writes the results to outputlog.txt 
void ProcessMyData (std::string data); 

Это говорит программист, используя external_library, что они могут вызвать функцию под названием ProcessMyData. Эта функция принимает std::string, ничего не возвращает и (если документация обновлена) записывает результаты в outputlog.txt.


ABI является приложением двоичного интерфейса. Он обеспечивает стандартный способ взаимодействия двоичных компонентов с платформой и друг с другом.

Примером ABI может служить система V ABI. Это указывает различные детали, такие как соглашения о вызовах функций, представления двоичных данных, форматы файлов объектов, загрузка, связывание и т. Д. Вы можете прочитать проект SysV ABI для процессоров AMD64 here, чтобы получить представление о его содержимом.

0

API Application Programming Interface

Это означает, что функции и классы программист использует, чтобы написать программу. Функциями и классами, предоставляемыми библиотекой, являются ее API.

ABI Применение Бинарный интерфейс.

Это низкоуровневый способ, который выполняет функции и классы в памяти после того, как программа была скомпилирована. Связывание части скомпилированной программы с скомпилированной библиотекой или другой частью скомпилированной программы требует, чтобы фрагменты были выложены таким же образом, чтобы все правильно сочеталось.

+0

Что вы имеете в виду с низким уровнем? –

+0

@MekacherAnis Я имею в виду то, как они выложены в памяти. * Исходный код C++ * написан на словах (высокий уровень). Когда исходный код * C++ * скомпилирован (преобразован в программу), он преобразуется в двоичные числа (низкий уровень). – Galik

+0

и как они укладываются в память? они обрабатываются функциями? –

 Смежные вопросы

  • Нет связанных вопросов^_^