Структура Сгенерированного Примера C/C++ Основная Функция

Когда вы создаете приложение, которое использует сгенерированный код C/C++, необходимо предоставить C/C++ основную функцию, которая вызывает сгенерированный код.

По умолчанию, для генерации кода исходного кода C/C++, статических библиотек, динамических библиотек и исполняемых файлов, MATLAB® Coder™ генерирует пример C/C++ основная функция. Эта функция является шаблоном, который может помочь, вы соединиться сгенерировали код C/C++ в свое приложение. Пример основная функция объявляет и инициализирует данные, включая динамически выделенные данные. Это вызывает функции точки входа, но не использует значения, которые возвращают функции точки входа. Чтобы использовать пример основная функция, скопируйте пример основной источник и заголовочные файлы к местоположению за пределами папки сборки, и затем измените файлы в новом месте, чтобы удовлетворить требования вашего приложения.

MATLAB Coder генерирует исходные и заголовочные файлы для примера основная функция в подпапке examples папки сборки. Для генерации кода C это генерирует файлы main.c и main.h. Для генерации Кода С++ это генерирует файлы main.cpp и main.h.

Содержимое файла main.c или main.cpp

Для примера основной исходный файл main.c или main.cpp, MATLAB Coder генерирует следующие разделы:

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

Включение файлов

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

Объявления функции

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

Функции инициализации аргумента

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

Для аргумента с размерностями размера <dimSizes> и MATLAB тип данных C/C++ <baseType>, пример основной исходный файл задает функцию инициализации с именем argInit_<dimSizes>_<baseType>. Например, для массива 5 на 5 с данными типа MATLAB дважды, пример основной исходный файл задает функцию инициализации аргумента argInit_5x5_real_T.

MATLAB Coder изменяет имя функций инициализации аргумента можно следующим образом:

  • Если какая-либо из размерностей является переменным размером, MATLAB Coder определяет размер этих размерностей как d<maxSize>, где <maxSize> является максимальным размером той размерности. Например, для массива с данными MATLAB вводят дважды с первой размерностью статического размера 2 и второе измерение, которое может отличаться по размеру до 10, пример, основной исходный файл задает функцию инициализации аргумента argInit_2xd10_real_T.

  • Если какая-либо из размерностей неограниченна, MATLAB Coder определяет размер этих размерностей как Unbounded.

  • Если типом возврата функции инициализации является emxArray, MATLAB Coder задает функцию как возврат указателя на emxArray.

  • Если длина имени функции инициализации превышает максимальное количество набора символов для имен функций в параметрах конфигурации, MATLAB Coder предварительно ожидает идентификатор к передней стороне имени функции. MATLAB Coder затем обрезает имя функции к максимальному позволенному количеству символов для длины идентификатора.

    Примечание

    По умолчанию максимальное количество символов допускало сгенерированные идентификаторы, 31. Чтобы задать набор значений для максимальной длины идентификатора с помощью приложения MATLAB Coder, выберите значение Maximum identifier length на вкладке Code Appearance настроек генерации кода. Чтобы задать набор значений для максимального идентификатора с помощью интерфейса командной строки, измените значение параметра объекта настройки MaxIdLength.

Функции точки входа

Этот раздел задает функцию для каждой функции точки входа MATLAB. Для функции MATLAB foo.m пример основной исходный файл задает функцию точки входа main_foo. Эта функция создает переменные и вызывает функции инициализации данных, которых требует исходная функция C/C++ foo.c или foo.cpp. Это вызывает эту исходную функцию C/C++, но не возвращает результат. Измените main_foo так, чтобы он взял входные параметры и возвратил выходные параметры как требуется вашим приложением.

Основная функция

Этот раздел задает функцию main, которая делает следующее:

  • Если ваш выходной язык является C, он объявляет и называет переменные argc и argv, но бросает их, чтобы освободить. Если вашим выходным языком является C++, сгенерированный основной пример объявляет, но не называет, переменные argc и argv.

  • Вызывает инициализировать функциональный foo_initialize, который назван по имени в алфавитном порядке первой функции точки входа foo, объявленный для генерации кода. Вызовите инициализировать функцию только однажды, даже если у вас есть несколько функций точки входа, вызванных в функциональном main.

  • Вызовы каждая точка входа функционируют однажды.

  • Вызывает оконечный функциональный foo_terminate, который назван по имени в алфавитном порядке первой функции точки входа foo, объявленный для генерации кода. Вызовите оконечную функцию только однажды, даже если у вас есть несколько функций точки входа, вызванных в функциональном main.

  • Возвращает нуль.

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

Содержимое файла main.h

Для примера основной заголовочный файл main.h MATLAB Coder генерирует следующее:

По умолчанию MATLAB Coder также генерирует комментарии в main.h, который может помочь вам изменить пример основная функция, чтобы использовать в вашем приложении.

Включайте охрану

main.h использует включать защиту, чтобы препятствовать тому, чтобы содержимое файла было включено многократно. Включать защита содержит включать файлы и объявления функции в построении #ifndef.

Включение файлов

main.h включает заголовочные файлы, требуемые вызывать код, который не задан в нем.

Объявления функции

main.h объявляет прототипа функции для основной функции, которая задана в примере основной исходный файл main.c или main.cpp.

Связанные примеры

Больше о