条件编译

条件编译:

#if expression

       Statement sequence

#elifexpression1

       Statement sequence1

#elifexpression2

       Statement sequence2

.  . .   .  .  .

#elifexpressionN

       Statement sequenceN

#endif

一个#if只能与一个#endif相匹配。

1. #ifdef 标识符

        程序段1

#else

        程序段2

#endif

如果标识符已被#define命令定义过则对程序段1进行编译,否则对程序段2进行编译,如果没有程序段2,#else可以没有。

2.#ifndef 标识符

        程序段1

#else

        程序段2

#endif

如果标识符未被#define命令定义过则对程序段1进行编译,否则对程序段2进行编译,如果没有程序段2,#else可以没有。

3.#if 常量表达式   

      程序段1

#else        

      程序段2

#endif   

如果常量表达式的值为真(非0),对程序段1进行编译,否则对程序段2进行编译。                                         

4.#if指令与defined编译时一起使用,例如:

#ifdefined  MY           或     #ifdef  MY

5.连接运算符“##”可以把两个独立的字符串连接成一个字符串。

6.预定义宏:

C规范了5个固有的预定义宏,分别为:

_DATE_             进行预处理的日期(“Mm dd yyyy”形式的字符串)

_FILE_               代表当前源代码文件名的字符串文字

_LINE_             代表当前源代码中的行号的整数常量

_TIME_             源文件编译时间,格式“hh: mm: ss”

_func_               当前所在函数名

7.C语言提供了六种位运算符

&-按位与

|-按位或

^-按位异或

~-取反

<<-左移

>>-右移

8.Heap-堆,堆空间手动分配释放,是很大的自由存储区;

Steak-栈,栈空间由操作系统自动分配/释放;

9.Static变量:存储在静态存储区,未经初始化的全局静态变量会被程序自动初始化为0;全局静态变量Vs局部静态变量

10.数据类型的转换特性:赋值时的类型转换实际上是强制的。

浮点型Vs整数

单、双精度浮点型

Char型与int型

Int与long型

将一个unsigned型数据赋给一个占据同样长度存储单元的整型变量时,原值照赋,内部的存储方式不变,但是外部值却可能改变。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值