预编译

#define 与 typedef

橙三吉。 提交于 2019-11-27 01:25:54
1、#define:预编译指令,在预编译的时候,进行文本替换。 2、typedef:编译时处理,为类型取一个别名。 3、#define与typedef的顺序是相反的,记住typedef就行了。typedef为类型取一个别名,前面是真名,后面才是别名。 4、避免使用#define,因为#define只是简单的文本替换,替换后,会出现优先级,以及组合成其他的词,不可预知。 转载于:https://www.cnblogs.com/nzbbody/p/3368670.html 来源: https://blog.csdn.net/weixin_30552635/article/details/99234456

js预编译 个人理解

走远了吗. 提交于 2019-11-26 19:23:14
什么是预编译呢 在函数(JS)执行的前一刻,会创建一个叫做执行期上下文的(AO)对象这个创建执行期上下文的过程叫做预编译 预编译发生在函数执行的前一刻 在初期我们知道 这只是比较浅的 函数声明整体提升 会把函数声明提到最上边 变量 声明提升 但是赋值没有被提升 预编译的过程(四部曲) 1、创建AO对象 创建AO对象(Activation Object){ 执行期上下文 } 2、找形参和变量声明 将变量和形参作为AO属性名 值为undefined AO{ 这是第二步 a:undefined, 因为变量名和形参名一样 所以只写一个就好 b:undefined, 第三步 接下来将参数传进去 将实参值和形参统一 a:1, b:undefined 第四步 在函数体里面找函数声明 值赋予函数体 a:function a(){}, b:undefined, d:function d(){}, } 3、将实参值和形参统一 4、在函数体里面找函数声明 值赋予函数体 全局的预编译和函数内的一样 只是全局生成了一个GO对象 <script> function fn(a){ console.log(a); //ƒ a(){} // 这个打印的是 函数声明 var a = 123; console.log(a); //123 // 这个打印的是变量a function a(){} console.log(a

正确使用预编译头

ε祈祈猫儿з 提交于 2019-11-26 15:12:49
  做C++的项目的时候最怕的就是编译速度缓慢,前段时间一直抱怨C++/CLI编译OSG项目速度很慢很慢,我以为是OSG的inline函数过多的问题,但确实也是这个问题,每次处理的时候都要处理很多的inline,造成了编译速度的缓慢,往往修改一个文件整个工程都要重新编译,那速度可想而知。但总也要有一个解决方案啊,以前知道预编译头能够加速工程的编译,但是我设置了预编译头,怎么还是那么慢呢?肯定是我使用方法不对。   在网上Google了一圈以后找到了预编译头的正确使用:原文URL: www.cnblogs.com/cofd/archive/2007/11/05/949962.html ,感谢作者的启迪。   引用最重要的部分:   如果预编译头文件被正确使用时,它确实大大提高我们编程的效率(你工作中,有多少时间是在等编译完成?很多吧,这个时候一般都很无聊,无奈,浪费时间)。但是他太容易用错了. 下面是几种常见的错误用法. 1) 在预编译头文件里include自己的头文件(当然, 如果你的头文件不经常变化, 也可以) 原因:自己的头文件一般会经常变, 便利后导致预编译的东东重新编译, 降低了编译速度. 2) 在其他的头文件里也include 预编译头文件 假设你的其他头文件也include了预编译头文件, 如果别人引用你的这个头文件又没有设置成预编译头文件,