小冲哥线下课堂


Join the forum, it's quick and easy

小冲哥线下课堂
小冲哥线下课堂
Would you like to react to this message? Create an account in a few clicks or log in to continue.
搜索
 
 

结果按:
 


Rechercher 高级搜索

关键词

最新主题
» 新人来报道了。。。。。。。。。
C语言笔记10--系统的记忆 Empty周日 十月 14, 2012 3:37 pm 由 15178959183

» 新人报道~我不是吐槽贴。。。
C语言笔记10--系统的记忆 Empty周三 五月 16, 2012 5:38 pm 由 萝卜爱喝水

» 课后作业1:编一个程序
C语言笔记10--系统的记忆 Empty周三 五月 09, 2012 11:24 pm 由 廖承启

» C语言初级课堂2--"Hello world"
C语言笔记10--系统的记忆 Empty周六 五月 05, 2012 12:52 am 由 醉之殇

» 新人来报道了。。。。。。
C语言笔记10--系统的记忆 Empty周四 五月 03, 2012 8:50 pm 由 sunquanwen

» 新人报到,字怎样就大了
C语言笔记10--系统的记忆 Empty周三 四月 25, 2012 7:50 am 由 wanghong

» 果断的。来报道啦。。。嘿嘿,我是新手哦
C语言笔记10--系统的记忆 Empty周六 四月 21, 2012 2:41 pm 由 ゛﹏小冲哥ゞ ✿『人事精英』✿李帅

» 指针数组与行指针的异同
C语言笔记10--系统的记忆 Empty周一 四月 09, 2012 3:59 pm 由 *小耳朵*

» 行指针q引用数组元素的方法
C语言笔记10--系统的记忆 Empty周一 四月 09, 2012 3:46 pm 由 *小耳朵*

十一月 2024
周一周二周三周四周五周六周日
    123
45678910
11121314151617
18192021222324
252627282930 

日历 日历

合作伙伴
免费论坛

免費論壇




C语言笔记10--系统的记忆

向下

C语言笔记10--系统的记忆 Empty C语言笔记10--系统的记忆

帖子  *小耳朵* 周二 三月 20, 2012 5:58 am

预编译处理
c编译系统在对程序进行通常的编译之前,先进行预处理。c提供的预处理功能主要有以下三种:1)宏定义 2)文件包含 3)条件编译


1. 宏定义


不带参数的宏定义

用一个指定的标识符来代表一个字符串,形式:#define 标识符 字符串

几点说明:

1) 宏名一般用大写

2) 宏定义不作语法检查,只有在编译被宏展开后的源程序时才会报错

3) 宏定义不是c语句,不在行末加分号

4) 宏名有效范围为定义到本源文件结束

5) 可以用#undef命令终止宏定义的作用域

6) 在宏定义时,可以引用已定义的宏名


带参数的宏定义

定义形式:#define 宏名(参数表) 字符串

这和函数有些类似,但他们是不同的:

1) 函数调用时,先求实参表达式值,再代入形参,而宏只是简单替换,并不求值

2) 函数调用是在程序运行时分配内存的,而宏展开时并不分配内存,也没有返回值的概念

3) 对函数中的实参和形参都要定义类型,而且要求一致,宏名无类型,其参数也没有类型。

4) 函数只有一个返回值,而宏可以得到几个结果

5) 宏替换不占运行时间,只占编译时间,而函数调用占运行时间


2. 文件包含处理


#include "文件1" 就是将文件1的全部内容复制插入到#include位置,作为一个源文件进行编译。

在#include命令中,文件名可以用" "也可以用< >,假如现在file1.c中包含file2.h文件," "表示系统先在file1.c所在目录中找file2.h,如果找不到,再按系统指定的标准方式检索目录,< >表示系统直接按指定的标准方式检索目录。所以用" "保险一点。


3. 条件编译


条件编译指不对整个程序都编译,而是编译满足条件的那部分。条件编译有以下几种形式:

1)#ifdef 标识符

  程序段1

  #else

程序段2

#endif

它的作用:当标识符在前面已经被定义过(一般用#define),则对程序段1编译,否则对程序段2编译。

2)#ifndef 标识符

程序段1

#else

程序段2

#endif

它的作用和#ifdef相反,当标识符没被定义过,对程序段1编译,否则对程序段2编译。

3)#if 表达式

程序段1

  #else

 程序段2

#endif

它的作用:当表达式值为真(非0)时,对程序段1编译,否则对程序段2编译。
*小耳朵*
*小耳朵*
版主
版主

帖子数 : 67
注册日期 : 12-03-16

http://1196631391@qq.com

返回页首 向下

返回页首


 
您在这个论坛的权限:
不能在这个论坛回复主题