好看的PPT模板网--金融ppt模板_股票期货ppt_精美的PPT模板_PPT背景_幻灯片背景_幻灯片模板_PPT素材_PPT图表_幻灯片母版_Powerpoint模板免费下载
 > Office教程 > Word教程 > bits/wordsize.h 《栖一夏学习笔记》了解代码预处理、编译、汇编、链接

bits/wordsize.h 《栖一夏学习笔记》了解代码预处理、编译、汇编、链接

时间:2024-08-14 14:26:15来源:网络 作者:佚名 点击:

(就是了解一下,重点看了下预处理)

一、编写两个代码

《c.c》

bits/wordsize.h

《.c》

bits/wordsize.h

二、预处理之后查看两个后缀为(.i)文件

bits/wordsize.h

三、查找区别

1. 前724行除c.c文件名替换成.c文件名外基本一致

2. 第725行开始,代码被替换成为main函数内容。

四、分析

1. 从预处理后的代码来看

l .c文件中条件编译已经处理,a被定义为1;

l 宏定义全部展开

l 所有注释被删除

2. 724行前均相同,为# 预编译指令处理后内容

格式为# flags

表示此后内容是从文件名为的文件中第 行展开的。

flags取值范围是1,2,3,4。可以有多个值,并用空格分开:

l 1 表示下面要展开一个新文件。相对于当前文件

l 2 表示一个文件展开完毕,返回到当前文件。

l 3 表示下面的内容来自一个系统头文件bits/wordsize.h,因此其中的警告信息应被屏蔽不输出。

l 4 表示下面的内容应被看做是以 "C" 块引入的。( "C"块的作用就是告诉C++编译器这段代码要按照C标准编译,以尽可能地保持C++与C的兼容性。)

3. 实例

# 27 "/usr//stdio.h" 3 4

3表示在该文件的第27需要展开一个系统头文件内容,4表示该文件头内容被看做是

以 "C" 块引入的

stdio.h 行显示 # < libc--start.h >

# 1 "/usr//-linux-gnu/bits/libc--start.h" 1 3 4

这就是上条所说的头文件,在此处展开了,1代表新文件

# 33 "/usr//-linux-gnu/bits/libc--start.h" 3 4

此文件第33行内容为 #

# 1 "/usr//.h" 1 3 4

承接上条所说,此处展开.h文件

# 452 "/usr//-linux-gnu/sys/cdefs.h" 3 4

425行内容是# ,下面会展开该文件

# 1 "/usr//-linux-gnu/bits/.h" 1 3 4

# 453 "/usr//-linux-gnu/sys/cdefs.h" 2 3 4

2表示在展开完毕后bits/wordsize.h,返回该文件(即cdefs.h)

4. 还会在预处理文件中出现的

l 类型重定义的都展开在预处理(被条件编译删除的不包括在内)

l 结构体也展开在预处理

转载务必注明出处!本文地址:http://www.ppt360.com/article/1016.html
更多

最新内容