C/C++ 预处理

以下几点只是我自己的笔记加上一点体会, 内容比较简单。具体的使用技巧以后再举例说明。


1CC++程序中允许定义一些命令, 这些命令可以在编译之前进行处理,这些命令成为预处理命令


2、预处理命令#开头,包括#include#define#undef #if#else #endif#ifdef#ifndef


3、按功能的不同又被分为:宏定义、文件包含处理、条件编译三种


4、预处理的目的:提高编程效率,处理跨平台问题等


5、预处理操作实际上就是替换,所以加括号就是一个很好的习惯了,如果没括号,优先级的问题将是一个大问题。


6、注意:末尾不加分号,它不是C语句,也不是C语法,只是预处理程序支持。


7、预处理程序支持带参数的宏替换操作(挺强大的,我们自己也可以设计一个宏替换的简单算法)

eg #define S(a,b)  (a*b)   括号里面的就是参数了。

关于带参数的宏的理解:首先,宏的标志就是S,跟参数无关,它应该具有唯一性,另外,参数是从左到右进行替换。比如上例中S(2,3) 就是根据标号S,找到宏定义,由()确定参数,然后从左到右,2替换a3替换b,用字符串处理函数就可以实现了。


8、宏定义的各部分使用空格进行分割的,所以,不要随便添加空格了 ^^,另外一个宏只能写在一行上,当然行尾加\是可行的。


9、文件包含:把被包含的文件全部拷贝到当前文件中。然后就可以使用被包含的文件中的内容了。此时就不需要用extern声明了。 注意相互包含的问题,即 A包含了B之后,就不要在B里面包含A了,如果真的需要的化,就用条件预编译,或者C++中的#Program Once


10#include "" <> 的区别, <> 通常用于标准库文件,而 "" 用于用户自定义文件。


11、条件编译:#if(#ifdef\#ifndef) #else #endif  //#if 后面跟逻辑值, #ifdef#ifndef 之后通常会定义一个作为条件的宏。




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值