码迷,mamicode.com
首页 > 系统相关 > 详细

可执行程序的装载和启动---linux内核学习笔记(七)

时间:2015-04-20 22:35:45      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:

内容一:实验报告相关说明

真实姓名 谢润帮

原创作品转载请注明出处 

所学课程:《Linux内核分析》MOOC课程  

链接:http://mooc.study.163.com/course/USTC-1000029000

 

内容二:可执行文件的创建(自己本身对这块不熟,是通过查资料来学习的,篇幅有点多)

  2.1 预处理阶段

  预处理过程读入源代码,检查包含预处理指令的语句和宏定义,并对源代码进行相应的转换,预处理过程还会删除程序中的注释和多余的空白字符。

其中预处理指令主要包括以下四个方面:

     2.1.1 宏定义指令

       预处理过程会把源代码中出现的宏标识符替换成宏定义时的值,常用的两种宏定义: 

1 //声明一个标识符,全部用大写字母来定义宏
2 #define MAX_NUM 10
3 
4 //带参数的#define指令(宏函数)
5 #define Cube(x)  ((x)*(x))
6 int i,num=1;
7 i=Cube(num);

    2.1.2 条件编译指令

      定义不同的宏来决定编译程序对哪些代码进行处理,条件编译指令将决定哪些代码被编译,而哪些是不被编译的。

    2.1.3 头文件包含指令

      #include预处理指令的作用是在指令处展开被包含的文件。

    程序中包含头文件有两种格式:#include <my.h>

                  #include "my.h"

    2.1.4 特殊符号

      预编译程序可以识别一些特殊的符号。预编译程序对于在源程序中出现的这些串将用合适的值进行替换,__FILE__,__LINE__,__TIME__ 等。

    以下代码分别打印所在文件名和当前时间。

1 int main(int argc, char *argv[]) 
2 {
3     printf("%s\n",__FILE__);
4     printf("%s\n",__TIME__);
5     return 0;
6 }

      

可执行程序的装载和启动---linux内核学习笔记(七)

标签:

原文地址:http://www.cnblogs.com/esxingzhe/p/4442632.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!