Why is code generation behavior different in 2018b for the "max" function?

조회 수: 5 (최근 30일)
I am using MATLAB Coder to generate C code for a Script which calls the "max" function. In 2018a, the generated code would contain an if-else condition to implement the "max" operation, but in 2018b it calls the "fmaxf" function. How do I revert to the earlier code generation behavior?

채택된 답변

MathWorks Support Team
MathWorks Support Team 2019년 4월 19일
In 2018b, the default standard math library changed to "C99 (ISO)", hence the code generator makes the call to the "fmaxf" function which resides in the same library.
To return to the earlier code generation behavior, please change the standard math library to "C89/90 (ANSI)" in the following manner:
>> cfg = coder.config('dll');
>> cfg.TargetLangStandard = 'C89/C90 (ANSI)';
>> codegen myScript -config cfg -args {1 2 3} % replace the script name and args list accordingly
If you are using the MATLAB Coder App, this option will be found in the Generate Code step under More Settings > Custom Code > Code Replacement Libraries > Standard math library.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB Coder에 대해 자세히 알아보기

제품


릴리스

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by