官术网_书友最值得收藏!

Code inlining control

We will look into the concept of code inlining later in this chapter, in the section, Optimizing method calls, so this text will serve just as an introduction.

By setting the value of Code inlining control, you define the default behavior for the complete project. The possible values for that setting are On, Off, and Auto. This default value can be changed in the code by inserting {$INLINE ON}, {$INLINE OFF}, or {$INLINE AUTO} into the source.

The INLINE state can be set to a different value at a place where the inlined method is defined and a place where it is used (called). This creates six possible combinations.

When we look at the method definition, INLINE has the following meaning:

  • INLINE ON: If the method is marked with the inline directive (more on that later), it will be marked as inlineable
  • INLINE AUTO: Same as INLINE ON, with the addition that any routine not marked with inline will still be marked inlineable if its code size is less than or equal to 32 bytes
  • INLINE OFF: The routine will not be marked as inlineable even if it is marked with inline

At the place of use, INLINE has a different meaning:

  • INLINE ON: If a called method is marked as inlineable, it will be expanded inline (at the place of call) if possible
  • INLINE AUTO: Same as INLINE ON
  • INLINE OFF: The routine will not be expanded inline, even if it is marked inlineable
主站蜘蛛池模板: 迭部县| 武夷山市| 噶尔县| 六盘水市| 沁阳市| 乐昌市| 铅山县| 迁西县| 绥棱县| 托克逊县| 宁南县| 金乡县| 芜湖市| 洛浦县| 盱眙县| 郸城县| 长顺县| 安多县| 新沂市| 高邮市| 梨树县| 婺源县| 宁乡县| 乌鲁木齐县| 贵阳市| 鹿泉市| 芮城县| 鄂托克前旗| 祁连县| 中方县| 剑河县| 巨野县| 黄平县| 泰州市| 锦屏县| 蕉岭县| 嘉兴市| 天祝| 朝阳县| 府谷县| 山东省|