📄 inline.dcf
字号:
// Inline testsclass Program { int g1; // should inline if doing simple procedures int plus (int a, int b) { return (a + b); } // may inline if doing simple procedures int twice(int a) { return (plus(a, a)); } // probably shouldn't inline unless inlining everything int long(int a) { a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; a = a + g1; return (a); } // this is recursive, so it can't be completely inlined int rec(int q) { if (q == 0) { return (0); } return ( 1 + rec ( q - 1)); } // tail recursive. could be inlined, but pretty tricky int tailrec(int q, int sf) { if (q == 0) { return (sf); } return (tailrec(q - 1, sf + 1)); // good compilers make this a goto. } // if tailrec is inlined, this should be too. int rec2(int q) { return (tailrec(q, 0)); } void main() { int c; callout("printf","G1? "); g1 = callout("readint"); c = long(1) + long(2) + long(3); // should probably not inline // but points won't be lost for doing so callout("printf","%d\n", twice(4)); // should probably inline callout("printf","%d\n", c); callout("printf","%d\n", rec(6)); callout("printf","%d\n", rec2(4)); c = 0; while (c < 5) { callout("printf","%d\n", plus(c,c)); // should definitely inline c = c + 1; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -