Cpp_multiFile
多文件MultiFile
三个问题
Q1:能在不降低可读性的前提下,降低COST吗?(不产生function call)
- 代码段的cost (时间)
- 参数传递 (push)
- 保持现场 (ret addr) (frame)
- Stack的cost (空间)
- 参数空间
- 环境
- 代码替换,不存在参数传递与现场调换 (Compiler)
- inline : 主动申请
- 联系 : virtual
Compiler帮你做改进
函数前面加上inline
inline的坏处:无法递归、函数指针没有了、代码段拉长了
循环不被认为是简单的代码
Q2:使用Lib需要注意什么?
- C/C++ 符号表不同,cpp 函数名因为重载与 C 不同
Q3:执行性呢?
- 安全问题
- 防止写入攻击,写和执行是正交的
- ROP
- 监视 : 指令两步跳转有问题
- 防止踩点
- 读和执行的正交
- Loader 地址 random
程序组织
作用域
#include告诉编译器提前做一些编辑工作,将库函数的代码粘贴到你的程序里面
extern告诉编译器有这个名称的函数或变量会在其他地方声明
static的变量作用域很小,但生命周期遍及整个程序,也就是说虽然我在其他地方不能直接使用它,但我想保留它的值
不建议在同一作用域两次使用using-directive
优先考虑using-declaration(ppt比较老,应该是<cstdio>)
编译预处理
- 与作用域、类型、接口等概念格格不入
- 编辑处理 : 不懂任何语法,仅仅是文本上的编辑
- 缺陷:
- 潜伏于环境
- 穿透作用域
宏
- 标题: Cpp_multiFile
- 作者: Kiyotaka Wang
- 创建于 : 2022-10-11 19:57:28
- 更新于 : 2022-11-21 13:04:50
- 链接: https://hmwang2002.github.io/2022/10/11/cpp-multifile/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。