头文件原文件,宏

头文件:变量的声明,函数的声明,类的定义——单独的头文件不参与编译,生成

源文件:变量的定义,函数的定义,类的成员的定义(包括属性和方法),在编译时针对源文                       件,自上而下,多个源文件独立编程

变量的声明:注意——int a//定义未初始化;         int  a=0//定义初始化;

                      只有在顶以前加上extern才叫声明;

源文件中类成员的定义:

源文件中:类成员函数在类外定义时要加上类名作用域

源文件中:类成员中的静态成员的static要去掉

#pragma once一般c++编译器自动添加其作用为:告诉编译器这个头文件在别包含在其他源文件中时,只包含一次——直接与编译器沟通,编译程序效率高

与#pragma once一样有去重功能还可以用宏实现eg:#ifndef   宏

                                                                                     #define  宏

                                                                                     去重代码

                                                                                      #endif

宏——编译效率低,宏的名字可能重复导致程序编译出错

程序的生成过程

1>>预处理文件——将编译的.cpp文件生成预处理文件.i文件

(1)解析#include头文件,进行展开替换

(2)宏的定义指令——#define宏的替换,#undef等

(3)预处理指令——解析#if  #ifndef  #ifdef   #else   #elif  #endif等

(4)删除所有注释

2>>编译    

将预处理完的.i文件进行词法分析,语法分析,语义分析及优化,产生相应的汇编文件.asm文件 

3>>汇编

 将编译完的.asm汇编文件的汇编指令逐条翻译成目标机器指令,并生成可重定位的目标程序.obj文件,该文件时二进制文件,编码时机器指令

4>>连接            

将多个目标文件.obj和库文件用连接器连接在一起,生成完整的可执行文件     

编译期 :将源代码文件交给编译器进行编译生成,最终得到可执行文件的过程;

类的成员函数,静态属性,访问修饰符,作用域都是编译期的

运行期:将可执行文件交给操作系统,运行,知道程序结束,退出的过程;

类的实例,对象,对象的引用,指针类型的对象都是运行期的概念

 

 宏:

1.宏主要起替换作用,在预处理期替换,宏也可以替换多行   “\”   该符号可以连接当行和下一行,一般情况下最后一行不用   "\"————‘\’后不能有任何的空格,tab,注释。

2.宏也可以带参数eg #define   MAX(a,b)     a*b      //带参数的宏,宏中的参数不会自动计算只是在替换如上面,若传参为MAX(1+2,3)那么结果不为9而是7——宏相对于函数的好处为效率高速度快——但无法进行程序的调试

 

3. #相当于将宏的参数看成字符串,相当于加上了“”

    #define     String(ART)        #ART   

   #@相当于将宏的参数看成字符,相当于加上了‘’

   #define     String(ART)        #@ART 

   ##相当于将宏的参数与指定的内容进行拼接

   #define     String(ART)       int a##ART=0

4.#undef取消宏的定义,限制宏的作用范围

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值